Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
Description
These two lines in GenericSpatialPropertyFunction L133 do not close the iterators created by find(). This causes problems with downstream code (such as our product) which expects that all query iterators get closed to have a clean transaction boundary.
Node lat = graph.find(subject, SpatialExtension.GEO_LAT_NODE, null).next().getObject();
Node lon = graph.find(subject, SpatialExtension.GEO_LON_NODE, null).next().getObject();
The above is particularly problematic for MultiUnion graphs, but may also for malformed graphs where a subject has two or more geo:lat/long triples.
(I am not 100% sure that it's exactly the two lines above that are causing the unclosed iterators but they look wrong regardless.)