Modify

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#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?

  1. download some data
  2. purge some objects
  3. 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)

RoadAttributes.mapcss (238.8 KB) - added by imagic 7 years ago.
Patched version of the style

Download all attachments as: .zip

Change History (22)

comment:1 Changed 7 years ago by skyper

Priority: normalmajor

comment:2 in reply to:  description Changed 7 years ago by skyper

Replying to skyper:

What steps will reproduce the problem?

  1. download some data
  2. purge some objects
  3. revert a changeset into new layer including some objects previous downloaded but not any purged ones

Forgot one step:

  1. move download into background

comment:3 Changed 7 years ago by Don-vip

Can you attach an .osm file example, and tell us what objects do you purge, and what changeset do you revert ? Thanks

comment:4 Changed 7 years ago by skyper

Ok I can reproduce:

  1. (Install style Lane and Road Attributes.)
  2. download http://www.openstreetmap.org/?lat=47.976925&lon=7.828832&zoom=19
  3. 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:5 Changed 7 years ago by Don-vip

Ok thanks for the additionnal info, it will help a lot.

comment:6 Changed 7 years ago by Don-vip

In 5766/josm:

see #8490 - fix NPE

comment:7 in reply to:  6 Changed 7 years ago by skyper

Replying to Don-vip:

In 5766/josm:

see #8490 - fix NPE

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 Changed 7 years ago by Don-vip

Cc: imagic added
Keywords: template_report removed

@Imagic: can you check if something is wrong with the style (according to warnings displayed on standard output) ?

comment:9 Changed 7 years ago by imagic

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 in reply to:  9 Changed 7 years ago by Don-vip

Cc: bastiK 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 Changed 7 years ago by imagic

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.

Changed 7 years ago by imagic

Attachment: RoadAttributes.mapcss added

Patched version of the style

comment:12 Changed 7 years ago by imagic

@skyper: I attached a patched version of the style. Could you please verify if the warnings and/or error disappears with it?

comment:13 in reply to:  12 Changed 7 years ago by skyper

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)

comment:14 Changed 7 years ago by 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...

comment:15 in reply to:  14 Changed 7 years ago by skyper

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 Changed 7 years ago by skyper

One more thing:

I just noticed that I have ~70 unsolved conflicts on the reverted data layer.

comment:17 Changed 7 years ago by Don-vip

Got it ! I can investigate myself now, thanks.

comment:18 Changed 7 years ago by Don-vip

Component: Plugin reverterCore
Owner: changed from Upliner to team

comment:19 Changed 7 years ago by Don-vip

Resolution: fixed
Status: newclosed

In 5774/josm:

fix #8490 - NPE

comment:20 Changed 7 years ago by bastiK

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 Changed 7 years ago by Don-vip

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 :)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.