#20345 closed defect (fixed)
Corrupted GeoPropertyIndex due to wrong rounding?
Reported by: | anonymous | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | 21.02 |
Component: | Core | Version: | |
Keywords: | template_report geo index rounding | Cc: |
Description (last modified by )
What steps will reproduce the problem?
- Tried to add a line and it crashed
What is the expected result?
What happens instead?
Please provide any additional information below. Attach a screenshot if possible.
URL:https://josm.openstreetmap.de/svn/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2020-12-28 22:03:23 +0100 (Mon, 28 Dec 2020) Build-Date:2020-12-30 02:30:55 Revision:17428 Relative:URL: ^/trunk Identification: JOSM/1.5 (17428 en) Mac OS X 10.15.7 OS Build number: Mac OS X 10.15.7 (19H114) Memory Usage: 981 MB / 3641 MB (252 MB allocated, but free) Java version: 1.8.0_201-b09, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel Screen: Display 722471061 2560×1600 (scaling 1.00×1.00) Display 69733382 1680×1050 (scaling 1.00×1.00) Maximum Screen Size: 2560×1600 Best cursor sizes: 16×16→16×16, 32×32→32×32 Dataset consistency test: No problems found Plugins: + ImportImagePlugin (35567) + apache-commons (35524) + apache-http (35589) + buildings_tools (35669) + ejml (35458) + geotools (35458) + jna (35662) + jts (35458) + log4j (35458) + mapwithai-dev (1.7.1.1-14-g9942dcd) + measurement (35640) + reltoolbox (35640) + reverter (35640) + undelete (35640) + utilsplugin2 (35674) Tagging presets: + ${HOME}/Downloads/FB_presets (1).xml Map paint styles: - ${HOME}/Downloads/FBedits (1).mapcss - ${HOME}/Downloads/rainbow_roads (1).mapcss - ${HOME}/Downloads/feature_age_style.mapcss - ${HOME}/Downloads/feature_owner_style.mapcss - ${HOME}/Downloads/FB_style (6).mapcss - https://josm.openstreetmap.de/josmfile?page=Styles/MapWithAI&zip=1 - ${HOME}/Downloads/landcover_style.mapcss Validator rules: + ${HOME}/Downloads/FB_rules5.14.validator.mapcss Last errors/warnings: - 00003.600 W: Update plugins - You updated your JOSM software. To prevent problems the plugins should be updated as well. Update plugins now? - 00013.987 E: Skipping to the next rule, because of an error: - 00013.988 E: org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.ParseException: Encountered " "{" "{ "" at line 18, column 130. - 00015.331 E: Failed to locate image 'MapWithAI' - 12344.008 E: Handled by bug report queue: java.lang.AssertionError. Cause: java.lang.AssertionError: Point LatLon[lat=30.751277776257815,lon=119.53124999999997] should be inside [ x: 119.53125 -> 120.9375, y: 30.234375 -> 30.9375 ] - 12401.541 E: Handled by bug report queue: java.lang.AssertionError. Cause: java.lang.AssertionError: Point LatLon[lat=30.44820247981697,lon=119.53124999999997] should be inside [ x: 119.53125 -> 120.9375, y: 30.234375 -> 30.9375 ] - 12401.591 E: Handled by bug report queue: java.lang.AssertionError: Point LatLon[lat=30.44820247981697,lon=119.53124999999997] should be inside [ x: 119.53125 -> 120.9375, y: 30.234375 -> 30.9375 ] - 13940.153 E: Handled by bug report queue: java.lang.AssertionError: Point LatLon[lat=30.580878544754302,lon=119.53124999999997] should be inside [ x: 119.53125 -> 120.9375, y: 30.234375 -> 30.9375 ] - 13940.201 E: Handled by bug report queue: java.lang.AssertionError. Cause: java.lang.AssertionError: Point LatLon[lat=30.580878544754302,lon=119.53124999999997] should be inside [ x: 119.53125 -> 120.9375, y: 30.234375 -> 30.9375 ] === REPORTED CRASH DATA === BugReportExceptionHandler#handleException: No data collected. Warning issued by: BugReportExceptionHandler#handleException === STACK TRACE === Thread: AWT-EventQueue-0 (19) of main java.lang.AssertionError: Point LatLon[lat=30.580878544754302,lon=119.53124999999997] should be inside [ x: 119.53125 -> 120.9375, y: 30.234375 -> 30.9375 ] at org.openstreetmap.josm.tools.GeoPropertyIndex$GPLevel.getBounded(GeoPropertyIndex.java:102) at org.openstreetmap.josm.tools.GeoPropertyIndex$GPLevel.getBounded(GeoPropertyIndex.java:148) at org.openstreetmap.josm.tools.GeoPropertyIndex$GPLevel.get(GeoPropertyIndex.java:94) at org.openstreetmap.josm.tools.GeoPropertyIndex$GPLevel.get(GeoPropertyIndex.java:96) at org.openstreetmap.josm.tools.GeoPropertyIndex.get(GeoPropertyIndex.java:49) at org.openstreetmap.josm.tools.Territories.lambda$getRegionalTaginfoUrls$4(Territories.java:237) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174) at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1699) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312) at java.util.stream.StreamSpliterators$DistinctSpliterator.forEachRemaining(StreamSpliterators.java:1286) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:747) at java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:721) at java.util.stream.AbstractTask.compute(AbstractTask.java:316) at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) at java.util.concurrent.ForkJoinPool.helpComplete(ForkJoinPool.java:1870) at java.util.concurrent.ForkJoinPool.externalHelpComplete(ForkJoinPool.java:2467) at java.util.concurrent.ForkJoinTask.externalAwaitDone(ForkJoinTask.java:324) at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:405) at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734) at java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:714) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at org.openstreetmap.josm.tools.Territories.getRegionalTaginfoUrls(Territories.java:242) at org.openstreetmap.josm.gui.dialogs.properties.PropertiesDialog.setupTaginfoNationalActions(PropertiesDialog.java:382) at org.openstreetmap.josm.gui.dialogs.properties.PropertiesDialog.selectionChanged(PropertiesDialog.java:729) at org.openstreetmap.josm.data.osm.event.SelectionEventManager$DataListenerInfo.fire(SelectionEventManager.java:57) at org.openstreetmap.josm.data.osm.event.SelectionEventManager.fireEvent(SelectionEventManager.java:159) at org.openstreetmap.josm.data.osm.event.SelectionEventManager.lambda$selectionChanged$0(SelectionEventManager.java:150) at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:246) at org.openstreetmap.josm.data.osm.event.SelectionEventManager.selectionChanged(SelectionEventManager.java:150) at org.openstreetmap.josm.data.osm.DataSet.lambda$doSelectionChange$13(DataSet.java:728) at org.openstreetmap.josm.tools.ListenerList.fireEvent(ListenerList.java:155) at org.openstreetmap.josm.data.osm.DataSet.doSelectionChange(DataSet.java:728) at org.openstreetmap.josm.data.osm.DataSet.setSelected(DataSet.java:659) at org.openstreetmap.josm.data.osm.DataSet.setSelected(DataSet.java:650) at org.openstreetmap.josm.actions.mapmode.DrawAction.setSelection(DrawAction.java:267) at org.openstreetmap.josm.actions.mapmode.DrawAction.mouseReleased(DrawAction.java:656) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290) at java.awt.Component.processMouseEvent(Component.java:6539) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6304) at java.awt.Container.processEvent(Container.java:2239) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2297) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476) at java.awt.Container.dispatchEventImpl(Container.java:2283) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84) at java.awt.EventQueue$4.run(EventQueue.java:733) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Attachments (1)
Change History (13)
comment:1 by , 4 years ago
comment:2 by , 4 years ago
Description: | modified (diff) |
---|---|
Keywords: | geo index rounding added |
Summary: | Tried to add a line and it crashed → Corrupted GeoPropertyIndex due to wrong rounding? |
comment:3 by , 4 years ago
I can reproduce this error when I try to create a node at 30.580878544754302,119.53124999999997
comment:4 by , 4 years ago
I think you cannot use method index()
, there will always be edge cases where this methd returns a value which doesn't match the calculated bbox. I've never seen a quadtree implementation without the loop to search the right child.
comment:6 by , 4 years ago
I didn't notice any, but maybe it depends on the area you are mapping. Anyway, as long as we deal with doubles I see no alternative to the search loop. Maybe it would be faster to allocate all children. I think the memory consumption wouldn't increase much.
comment:12 by , 4 years ago
Milestone: | → 21.02 |
---|
In 17442/josm: