Opened 6 years ago
Closed 6 years ago
#392 closed defect (fixed)
NPE when merging
| Reported by: | Gabriel Ebner <ge@…> | Owned by: | framm |
|---|---|---|---|
| Priority: | major | Component: | Core |
| Version: | Keywords: | ||
| Cc: |
Description
I was downloading one bbox, then one overlapping with it and got an NPE. The nodes from the new bbox were merged, but some ways were missing afterwards. (Unfortunately I can't reproduce it anymore.)
download: http://www.openstreetmap.org/api/0.5/map?bbox=16.300458551651065,48.19654985374259,16.304897063136416,48.19915047919847
got return: 200
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.openstreetmap.josm.gui.PleaseWaitRunnable.closeDialog(PleaseWaitRunnable.java:146)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:95)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:997)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.closeDialog(PleaseWaitRunnable.java:142)
... 4 more
Caused by: java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
at java.util.regex.Matcher.reset(Matcher.java:291)
at java.util.regex.Matcher.<init>(Matcher.java:211)
at java.util.regex.Pattern.matcher(Pattern.java:888)
at org.openstreetmap.josm.tools.DateParser.parse(DateParser.java:35)
at org.openstreetmap.josm.data.osm.OsmPrimitive.getTimestamp(OsmPrimitive.java:127)
at org.openstreetmap.josm.data.osm.visitor.MergeVisitor.mergeAfterId(MergeVisitor.java:311)
at org.openstreetmap.josm.data.osm.visitor.MergeVisitor.visit(MergeVisitor.java:91)
at org.openstreetmap.josm.data.osm.Way.visit(Way.java:23)
at org.openstreetmap.josm.gui.layer.OsmDataLayer.mergeFrom(OsmDataLayer.java:174)
at org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask$Task.finish(DownloadOsmTask.java:49)
at org.openstreetmap.josm.gui.PleaseWaitRunnable$4.run(PleaseWaitRunnable.java:128)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
at java.awt.Dialog$1.run(Dialog.java:1039)
at java.awt.Dialog$3.run(Dialog.java:1091)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1089)
at java.awt.Component.show(Component.java:1419)
at java.awt.Component.setVisible(Component.java:1372)
at java.awt.Window.setVisible(Window.java:801)
at java.awt.Dialog.setVisible(Dialog.java:979)
at org.openstreetmap.josm.gui.PleaseWaitRunnable$3.run(PleaseWaitRunnable.java:78)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Attachments (2)
Change History (6)
comment:1 Changed 6 years ago by Gabriel Ebner <ge@…>
comment:2 Changed 6 years ago by Gabriel Ebner <ge@…>
- Resolution set to fixed
- Status changed from new to closed
Arrgh. Why did I ever even think about removing code handling incomplete segments?
This is the second of these bugs (the first one was #385) that bites us because JOSM doesn't handle incomplete objects properly. I guess these bugs will be with us for a while. I'd better get used to it.
comment:3 Changed 6 years ago by Gabriel Ebner <ge@…>
- Resolution fixed deleted
- Status changed from closed to reopened
Yeah, that wasn't the whole story. It still doesn't work. It just doesn't throw an NPE. Now we get an empty way...
I'll go to bed now. Fix will probably arrive tomorrow when I understand what the MergeVisitor is actually doing.
comment:4 Changed 6 years ago by Gabriel Ebner <ge@…>
- Resolution set to fixed
- Status changed from reopened to closed
I think I have fixed this now in r370.



Okay, I can reproduce this now. Loading tmp2.osm and tmp.osm, and then merging them triggers the NPE.