vlsi commented on PR #693:
URL: https://github.com/apache/jmeter/pull/693#issuecomment-1528952597

   I rebased "option 2", and now I'm puzzled.
   
   It fails on test cases like `assertEquals(new Header("accept", "*/*"), 
httpSampler.getHeaderManager().getHeader(0));`
   
https://github.com/apache/jmeter/blob/5020590c2dd6564e87cc2295e0090d2c6526c436/src/protocol/http/src/test/java/org/apache/jmeter/gui/action/ParseCurlCommandActionTest.java#L254-L255
   
   The code that compares elements like `if (file.equals(item)) {` seems to be 
harder to spot.
   Then, it is not that often that test elements are placed in sets. Well, 
JMeter itself does that, however, it is unlikely plugins will deal with 
`Map<TestElement`.
   
   Then, we won't be able to make `TestElement#equal` final as it might break 
compatibility with some of the plugins that happened to override the method for 
their own reasons.
   
   So it might be a safer choice to go for "option 1", and make 
`TestElement#hashCode` and `TestElement#equals` compare element contents. Then 
all the places that need element identity (e.g. `SearchByClass` that needs to 
report individual elements even if their contents is the same) should use 
`IdentityHashMap` or something like that.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@jmeter.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to