[ 
https://issues.apache.org/jira/browse/LUCENE-8587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16715216#comment-16715216
 ] 

Zsolt Gyulavari commented on LUCENE-8587:
-----------------------------------------

Apparently I've tapped in a bigger question here.

The tests are failing (10% of the time) because GeoPoint serialization is based 
on lat/lon fields and equals are based on x/y/z fields. When creating GeoPoints 
out of lat/lon data in the test suite (as it is done for the shapes) then the 
same rounding happens as in the deserialization. The testPoint however is 
generated based on x/y/z in the test suite, so the rounding of the 
deserialization will result in different coordinates.

If I changed the equals method to allow a threshold below MINIMUM_RESOLUTION 
the hashCodes would be different for object that would be equal.

If I changed the generation of the random test data I would hide a potential 
problem in serialization:
When a GeoPoint is created using the x/y/z constructor the 
serialization/deserialization would potentially result in an object that isn't 
equal to the original.

Please advise.

> Self comparison bug in GeoComplexPolygon.equals method
> ------------------------------------------------------
>
>                 Key: LUCENE-8587
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8587
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 7.1
>            Reporter: Zsolt Gyulavari
>            Priority: Major
>         Attachments: LUCENE-8587.patch
>
>
> GeoComplexPolygon.equals method checks equality with own testPoint1 field 
> instead of the other.testPoint1.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to