#8490 closed defect (fixed)
NullPointerException reverting into new layer
| Reported by: | skyper | Owned by: | team |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | Core | Version: | latest |
| Keywords: | Cc: | imagic, bastiK |
Description
What steps will reproduce the problem?
- download some data
- purge some objects
- revert a changeset into new layer including some objects previous downloaded but not any purged ones
What is the expected result?
New data layer containing reverted objects
What happens instead?
NullPointerException
Please provide any additional information below. Attach a screenshot if
possible.
Trying to reproduce #8489 I hit this, not sure if it is reproducable all the time but it happened already twice.
Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2013-03-04 02:31:43
Last Changed Author: akks
Revision: 5756
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2013-03-03 21:20:18 +0100 (Sun, 03 Mar 2013)
Last Changed Rev: 5756
Identification: JOSM/1.5 (5756 de)
Memory Usage: 78 MB / 643 MB (5 MB allocated, but free)
Java version: 1.6.0_27, Sun Microsystems Inc., OpenJDK 64-Bit Server VM
Operating system: Linux
Dataset consistency test: No problems found
Plugin: mirrored_download (29210)
Plugin: reverter (29296)
Plugin: utilsplugin2 (29241)
Plugin: wikipedia (29330)
java.lang.NullPointerException
at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:114)
at org.openstreetmap.josm.gui.mappaint.ElemStyles.get(ElemStyles.java:54)
at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$StyleCollector.add(StyledMapRenderer.java:181)
at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.collectNodeStyles(StyledMapRenderer.java:362)
at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.render(StyledMapRenderer.java:1341)
at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:320)
at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:503)
at org.openstreetmap.josm.gui.MapView.paint(MapView.java:587)
at javax.swing.JComponent.paintChildren(JComponent.java:866)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5138)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302)
at javax.swing.RepaintManager.paint(RepaintManager.java:1216)
at javax.swing.JComponent._paintImmediately(JComponent.java:5086)
at javax.swing.JComponent.paintImmediately(JComponent.java:4896)
at javax.swing.RepaintManager$3.run(RepaintManager.java:807)
at javax.swing.RepaintManager$3.run(RepaintManager.java:795)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:795)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:764)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:61)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:643)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
at java.awt.Dialog$1.run(Dialog.java:1079)
at java.awt.Dialog$3.run(Dialog.java:1133)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1131)
at java.awt.Component.show(Component.java:1571)
at java.awt.Component.setVisible(Component.java:1523)
at java.awt.Window.setVisible(Window.java:951)
at java.awt.Dialog.setVisible(Dialog.java:1013)
at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:643)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
at java.awt.Dialog$1.run(Dialog.java:1079)
at java.awt.Dialog$3.run(Dialog.java:1133)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1131)
at java.awt.Component.show(Component.java:1571)
at java.awt.Component.setVisible(Component.java:1523)
at java.awt.Window.setVisible(Window.java:951)
at java.awt.Dialog.setVisible(Dialog.java:1013)
at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:643)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Attachments (1)
Change History (22)
comment:1 by , 13 years ago
| Priority: | normal → major |
|---|
comment:2 by , 13 years ago
comment:3 by , 13 years ago
Can you attach an .osm file example, and tell us what objects do you purge, and what changeset do you revert ? Thanks
comment:4 by , 13 years ago
Ok I can reproduce:
- (Install style Lane and Road Attributes.)
- download http://www.openstreetmap.org/?lat=47.976925&lon=7.828832&zoom=19
- revert changeset 14914753 into new layer
no purging needed.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2013-03-07 02:31:35 Last Changed Author: Don-vip Revision: 5759 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2013-03-06 22:41:42 +0100 (Wed, 06 Mar 2013) Last Changed Rev: 5759 Identification: JOSM/1.5 (5759 de) Memory Usage: 79 MB / 643 MB (45 MB allocated, but free) Java version: 1.6.0_27, Sun Microsystems Inc., OpenJDK 64-Bit Server VM Operating system: Linux Dataset consistency test: No problems found Plugin: reverter (29348) java.lang.NullPointerException at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:114) at org.openstreetmap.josm.gui.mappaint.ElemStyles.get(ElemStyles.java:54) at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$StyleCollector.add(StyledMapRenderer.java:199) at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.collectWayStyles(StyledMapRenderer.java:378) at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.render(StyledMapRenderer.java:1342) at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:320) at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:503) at org.openstreetmap.josm.gui.MapView.paint(MapView.java:587) at javax.swing.JComponent.paintChildren(JComponent.java:866) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5138) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302) at javax.swing.RepaintManager.paint(RepaintManager.java:1216) at javax.swing.JComponent._paintImmediately(JComponent.java:5086) at javax.swing.JComponent.paintImmediately(JComponent.java:4896) at javax.swing.RepaintManager$3.run(RepaintManager.java:807) at javax.swing.RepaintManager$3.run(RepaintManager.java:795) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:795) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:764) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706) at javax.swing.RepaintManager.access$1000(RepaintManager.java:61) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194) at java.awt.Dialog$1.run(Dialog.java:1079) at java.awt.Dialog$3.run(Dialog.java:1133) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1131) at java.awt.Component.show(Component.java:1571) at java.awt.Component.setVisible(Component.java:1523) at java.awt.Window.setVisible(Window.java:951) at java.awt.Dialog.setVisible(Dialog.java:1013) at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194) at java.awt.Dialog$1.run(Dialog.java:1079) at java.awt.Dialog$3.run(Dialog.java:1133) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1131) at java.awt.Component.show(Component.java:1571) at java.awt.Component.setVisible(Component.java:1523) at java.awt.Window.setVisible(Window.java:951) at java.awt.Dialog.setVisible(Dialog.java:1013) at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
on the console I get some more info:
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
java.lang.NullPointerException
at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:114)
<-- snip -->
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
comment:7 by , 13 years ago
Replying to Don-vip:
In 5766/josm:
Still the same NPE:
Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2013-03-09 02:31:44
Last Changed Author: Don-vip
Revision: 5766
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2013-03-08 23:58:43 +0100 (Fri, 08 Mar 2013)
Last Changed Rev: 5766
Identification: JOSM/1.5 (5766 de)
Memory Usage: 86 MB / 643 MB (23 MB allocated, but free)
Java version: 1.6.0_27, Sun Microsystems Inc., OpenJDK 64-Bit Server VM
Operating system: Linux
Dataset consistency test: No problems found
Plugin: reverter (29353)
java.lang.NullPointerException
at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:115)
at org.openstreetmap.josm.gui.mappaint.ElemStyles.get(ElemStyles.java:54)
at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$StyleCollector.add(StyledMapRenderer.java:181)
at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.collectNodeStyles(StyledMapRenderer.java:362)
at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.render(StyledMapRenderer.java:1341)
at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:320)
at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:503)
at org.openstreetmap.josm.gui.MapView.paint(MapView.java:587)
at javax.swing.JComponent.paintChildren(JComponent.java:866)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5138)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302)
at javax.swing.RepaintManager.paint(RepaintManager.java:1216)
at javax.swing.JComponent._paintImmediately(JComponent.java:5086)
at javax.swing.JComponent.paintImmediately(JComponent.java:4896)
at javax.swing.RepaintManager$3.run(RepaintManager.java:807)
at javax.swing.RepaintManager$3.run(RepaintManager.java:795)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:795)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:764)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:61)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:643)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
at java.awt.Dialog$1.run(Dialog.java:1079)
at java.awt.Dialog$3.run(Dialog.java:1133)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1131)
at java.awt.Component.show(Component.java:1571)
at java.awt.Component.setVisible(Component.java:1523)
at java.awt.Window.setVisible(Window.java:951)
at java.awt.Dialog.setVisible(Dialog.java:1013)
at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:643)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
at java.awt.Dialog$1.run(Dialog.java:1079)
at java.awt.Dialog$3.run(Dialog.java:1133)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1131)
at java.awt.Component.show(Component.java:1571)
at java.awt.Component.setVisible(Component.java:1523)
at java.awt.Window.setVisible(Window.java:951)
at java.awt.Dialog.setVisible(Dialog.java:1013)
at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673)
at java.awt.EventQueue.access$300(EventQueue.java:96)
at java.awt.EventQueue$2.run(EventQueue.java:634)
at java.awt.EventQueue$2.run(EventQueue.java:632)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:643)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes to type class [F: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
Warning: unable to convert property dashes-background-color to type class java.awt.Color: found Keyword{false} of type class org.openstreetmap.josm.gui.mappaint.Keyword!
comment:8 by , 13 years ago
| Cc: | added |
|---|---|
| Keywords: | template_report removed |
@Imagic: can you check if something is wrong with the style (according to warnings displayed on standard output) ?
follow-up: 10 comment:9 by , 13 years ago
I guess the warning originates from this:
dashes: eval(is_prop_set(designated_color_forward_2,"default")?list(20,20):false);
dashes-background-color: eval(is_prop_set(designated_color_forward_2,"default")?
prop(designated_color_forward_2,"default"):false);
In some circumstances I need to not set those properties, therefore I set them to "false". This is actually regular behaviour - in almost all situations this is set to false, except if a lane is designated to some vehicle type.
Even if "false" is not a good value I don't think it should cause a NPE.
comment:10 by , 13 years ago
| Cc: | added |
|---|
Replying to imagic:
This is actually regular behaviour - in almost all situations this is set to false, except if a lane is designated to some vehicle type.
Even if "false" is not a good value
I don't know MapCSS well enough to answer this question. bastiK, should we add "false" to Keyword class, or should the properties be set to something else ?
comment:11 by , 13 years ago
The value "false" is definitively not valid for those properties, but that's the reason why I use it, because I don't know any method to unset a property. I will change that in the next days (hopefully) to something like eval(prop(this_property_is_not_set)). But that would only hide a deeper problem: the MapCSS interpreter should never crash even if invalid values are used. And again: those properties are set to false in almost all situations right now, so there must be something else that triggers the NPE.
follow-up: 13 comment:12 by , 13 years ago
@skyper: I attached a patched version of the style. Could you please verify if the warnings and/or error disappears with it?
comment:13 by , 13 years ago
Replying to imagic:
@skyper: I attached a patched version of the style. Could you please verify if the warnings and/or error disappears with it?
Warnings disappear, error stays:
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2013-03-11 02:31:38 Last Changed Author: simon04 Revision: 5771 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2013-03-10 11:20:12 +0100 (Sun, 10 Mar 2013) Last Changed Rev: 5771 Identification: JOSM/1.5 (5771 de) Memory Usage: 80 MB / 643 MB (32 MB allocated, but free) Java version: 1.6.0_27, Sun Microsystems Inc., OpenJDK 64-Bit Server VM Operating system: Linux Dataset consistency test: No problems found Plugin: reverter (29353) java.lang.NullPointerException at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:115) at org.openstreetmap.josm.gui.mappaint.ElemStyles.get(ElemStyles.java:54) at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$StyleCollector.add(StyledMapRenderer.java:199) at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.collectWayStyles(StyledMapRenderer.java:378) at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.render(StyledMapRenderer.java:1342) at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:320) at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:503) at org.openstreetmap.josm.gui.MapView.paint(MapView.java:587) at javax.swing.JComponent.paintChildren(JComponent.java:866) at javax.swing.JComponent.paint(JComponent.java:1038) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5138) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302) at javax.swing.RepaintManager.paint(RepaintManager.java:1216) at javax.swing.JComponent._paintImmediately(JComponent.java:5086) at javax.swing.JComponent.paintImmediately(JComponent.java:4896) at javax.swing.RepaintManager$3.run(RepaintManager.java:807) at javax.swing.RepaintManager$3.run(RepaintManager.java:795) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:795) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:764) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706) at javax.swing.RepaintManager.access$1000(RepaintManager.java:61) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194) at java.awt.Dialog$1.run(Dialog.java:1079) at java.awt.Dialog$3.run(Dialog.java:1133) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1131) at java.awt.Component.show(Component.java:1571) at java.awt.Component.setVisible(Component.java:1523) at java.awt.Window.setVisible(Window.java:951) at java.awt.Dialog.setVisible(Dialog.java:1013) at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194) at java.awt.Dialog$1.run(Dialog.java:1079) at java.awt.Dialog$3.run(Dialog.java:1133) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1131) at java.awt.Component.show(Component.java:1571) at java.awt.Component.setVisible(Component.java:1523) at java.awt.Window.setVisible(Window.java:951) at java.awt.Dialog.setVisible(Dialog.java:1013) at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:170) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
follow-up: 15 comment:14 by , 13 years ago
Thanks for the test. I'm still unable to reproduce the NPE, I will give you a debug jar to see what's wrong here...
comment:15 by , 13 years ago
Replying to Don-vip:
Thanks for the test. I'm still unable to reproduce the NPE, I will give you a debug jar to see what's wrong here...
I did just verify if I still get the older NPE with the unpatched style and yes I did but only after one cycle without NPE (e.g. deleting both layers and downloading + reverting once more).
comment:16 by , 13 years ago
One more thing:
I just noticed that I have ~70 unsolved conflicts on the reverted data layer.
comment:18 by , 13 years ago
| Component: | Plugin reverter → Core |
|---|---|
| Owner: | changed from to |
comment:20 by , 13 years ago
Thanks for fixing this, it was certainly not easy!
osm.mappaintStyle is != null in line 71, but later in line 114 it can be null. If I understand correctly, this happens because the paint cache is cleared in another thread, while the method is in execution. A synchronized (osm) { ... } block would certainly help, but I guess it is not necessary in this case...
comment:21 by , 13 years ago
You're right, that's what happens. I thought also to the synchronized block , but was afraid of potential side effects. This basic check should be enough :)



Replying to skyper:
Forgot one step: