Just tried a brief test without equals - Jmeter seems to run a simple test
OK, but the clone tests complain, and Jmeter says the test plan has not been
saved even though it has only just started empty!

The latter might be hard to fix, and I need to do a more thorough test than
just downloading a single page in GUI mode...

Maybe I'll get some more clues when I've worked out why the GuiTest is
changed when it is loaded.

S.
>-----Original Message-----
>From: BAZLEY, Sebastian 
>Sent: 20 February 2004 14:42
>To: 'JMeter Developers List'
>Subject: RE: [HEADS UP] Possible problems with equals() and hashCode()
>
>
>Yes, I think I did, but that was before I found the symmetry bug in
>HashTree.
>
>I'll try again - but I'm sure some clone tests will fail as 
>they check for
>cloned items being equal.
>
>I suppose if equality testing was required for purposes other than
>Collections we could implement a sameAs() or similar() method 
>that would not
>get used by Collections.
>
>S.
>>-----Original Message-----
>>From: Jordi Salvat i Alabart [mailto:[EMAIL PROTECTED]
>>Sent: 20 February 2004 14:27
>>To: JMeter Developers List
>>Subject: Re: [HEADS UP] Possible problems with equals() and hashCode()
>>
>>
>>Yes, let's clean up! Have you tried removing those equals() methods?
>>
>>BAZLEY, Sebastian wrote:
>>> I've been looking at equals/hashcode following some warnings 
>>from FindBugs,
>>> but not resolved the problems fully. Thought it would be 
>>useful to summarise
>>> what I've found so far:
>>> 
>>> If a class over-rides equals(), it should also override hashCode(),
>>> otherwise it cannot be used reliably in Collections which 
>>use hashing.
>>> Furthermore, if a non-abstract class overrides equals(), it is then
>>> impossible to write a compliant equals() method for any 
>>class that extends
>>> and adds an aspect to the base class.
>>> 
>>> Now AbstractTestElement (ATE) overrides equals(), but does 
>>not provide a
>>> compliant hashCode().
>>> The equals() method compares instances using the propMap 
>>field only, but
>>> when I tried using propMap.hashCode(), all sorts of problems 
>>occurred in the
>>> test tree, with elements being lost.
>>> 
>>> Furthermore, the classes that extend AbstractTestElement 
>>(ATE) don't provide
>>> their own equals() and hashCode() methods, even if they add 
>>an aspect to the
>>> class. Two such classes can compare equal even if there are 
>>significant
>>> differences in their data areas.
>>> 
>>> I tried adding what I thought were suitable equals() and 
>>hashCode() methods
>>> to the sub-classes of ATE, but started to get JUnit errors. 
>>Likewise if the
>>> equals method is removed from ATE. I've not yet worked out 
>>if these are
>>> real, or if the tests need changing.
>>> 
>>> Actually, I'm not clear on is the purpose of providing an 
>>equals() method
>>> for test elements - can anyone provide enlightenment?
>>> 
>>> There may be a similar problem with Properties.
>>> I can see that these might be suitable candidates for using 
>>equals(), but I
>>> think the hashCode() contract is currently not always 
>>honoured. I need to
>>> write some tests for this ...
>>> 
>>> S.
>>> 
>>> 
>>> 
>>_______________________________________________________________
>>____________
>>> 
>>> This e-mail and the documents attached are confidential and 
>>intended solely
>>> for the addressee; it may also be privileged. If you receive 
>>this e-mail in
>>> error, please notify the sender immediately and destroy it. 
>>As its integrity
>>> cannot be secured on the Internet, the Atos Origin group 
>>liability cannot be
>>> triggered for the message content. Although the sender 
>>endeavours to maintain
>>> a computer virus-free network, the sender does not warrant that this
>>> transmission is virus-free and will not be liable for any 
>>damages resulting
>>> from any virus transmitted. 
>>> 
>>_______________________________________________________________
>>____________
>>> 
>>> 
>>> 
>---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>> 
>>> 
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to