Modify

Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#17197 closed defect (fixed)

JOSM crashes when a filter removes something from the selection and you are still adding data

Reported by: taylor.smock Owned by: GerdP
Priority: normal Milestone: 19.01
Component: Core shortcuts Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. Add a filter, e.g. "highway and surface=* and lanes=*"
  2. Enable the filter
  3. Modify an object so that it matches the filter using the 'shift' + 'enter' keyboard shortcut to keep adding data
  4. Add another tag/value pair
  5. Crash

What is the expected result?

Either nothing gets added or the "Add value?" dialogue closes automatically when there is no selected object or the object that data is being added to continues to get the tag/value pairs.

Workaround: Add "selected" to filter

What happens instead?

A crash occurs.

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-01-10 09:42:03 +0100 (Thu, 10 Jan 2019)
Revision:14672
Build-Date:2019-01-11 02:32:17
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (14672 en) Mac OS X 10.14.2
OS Build number: Mac OS X 10.14.2 (18C54)
Memory Usage: 489 MB / 2048 MB (87 MB allocated, but free)
Java version: 11.0.1+13, Oracle Corporation, OpenJDK 64-Bit Server VM
Screen: Display 188945226 1920x1080, Display 69978068 2048x1152
Maximum Screen Size: 2048x1152
Dataset consistency test: No problems found

Plugins:
+ Mapillary (v1.5.17)
+ apache-commons (34506)
+ apache-http (34632)
+ auto_tools (67)
+ buildings_tools (34807)
+ download_along (34503)
+ ejml (34389)
+ geotools (34513)
+ graphview (34576)
+ imagery_offset_db (34641)
+ jaxb (34506)
+ jna (34633)
+ jts (34524)
+ kaartvalidation (1544737498)
+ opendata (34805)
+ osm-obj-info (49)
+ reverter (34552)
+ rex (49)
+ tageditor (34560)
+ turnrestrictions (34643)
+ utilsplugin2 (34812)

Tagging presets:
+ http://zibi.openstreetmap.org.pl/kendzi/k/Simple3dPreset/s3db-preset.zip
+ https://josm.openstreetmap.de/josmfile?page=Presets/Simple_Indoor_Tagging&zip=1

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/HiDPISupport&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/DestinationSignRelation&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Maxspeed&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/Noname&zip=1
+ ${HOME}/workspace/osm/JOSM Paint Styles and Presets/Kaart Styles 3.1.mapcss
+ /Volumes/Clingstone/JOSM Paint Styles and Presets/Overlapping Ways.mapcss
+ https://raw.githubusercontent.com/species/josm-preset-traffic_sign_direction/master/direction.mapcss
+ https://josm.openstreetmap.de/josmfile?page=Styles/Coloured_Streets&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/NewHighwayColors&zip=1

Validator rules:
+ ${HOME}/workspace/osm/kaart.validator.mapcss

Last errors/warnings:
- W: Expecting test 'fixme is a tag which exists on the object, is the fixme fixed?' (i.e., [*[fixme][ParameterFunction~equal(class java.lang.Object ParameterFunction~count(interface java.util.List ParameterFunction~split(class java.lang.String < >,class java.lang.String ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>))),class java.lang.Object <1.0>)][ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>)]]) to not match way fixme=name (i.e., TagMap[fixme=name])
- E: Skipping to the next rule, because of an error:
- E: org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.ParseException: Encountered " "~" "~ "" at line 497, column 61.
- E: Skipping to the next rule, because of an error:
- E: org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.ParseException: Encountered " "~" "~ "" at line 497, column 61.
- W: Expecting test 'fixme is a tag which exists on the object, is the fixme fixed?' (i.e., [*[fixme][ParameterFunction~equal(class java.lang.Object ParameterFunction~count(interface java.util.List ParameterFunction~split(class java.lang.String < >,class java.lang.String ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>))),class java.lang.Object <1.0>)][ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>)]]) to not match way fixme=name (i.e., TagMap[fixme=name])
- W: Expecting test 'fixme is a tag which exists on the object, is the fixme fixed?' (i.e., [*[fixme][ParameterFunction~equal(class java.lang.Object ParameterFunction~count(interface java.util.List ParameterFunction~split(class java.lang.String < >,class java.lang.String ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>))),class java.lang.Object <1.0>)][ParameterFunction~not_equal(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>),class java.lang.Object <>)]]) to not match way fixme=name (i.e., TagMap[fixme=name])
- W: Expecting test 'fixme is a tag which exists on the object, is the fixme fixed?' (i.e., [*[fixme][ParameterFunction~equal(class java.lang.Object ParameterFunction~count(interface java.util.List ParameterFunction~split(class java.lang.String < >,class java.lang.String ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>))),class java.lang.Object <1.0>)][ParameterFunction~print(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>))]]) to not match way fixme=name (i.e., TagMap[fixme=name])
- W: Expecting test 'fixme is a tag which exists on the object, is the fixme fixed?' (i.e., [*[fixme][ParameterFunction~equal(class java.lang.Object ParameterFunction~count(interface java.util.List ParameterFunction~split(class java.lang.String < >,class java.lang.String ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>))),class java.lang.Object <1.0>)][ParameterFunction~println(class java.lang.Object ParameterFunction~tag(class org.openstreetmap.josm.gui.mappaint.Environment,class java.lang.String <fixme>))]]) to not match way fixme=name (i.e., TagMap[fixme=name])
- E: Handled by bug report queue: java.lang.NullPointerException


=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (19) of main
java.lang.NullPointerException
	at org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper$AddTagsDialog.performTagAdding(TagEditHelper.java:1080)
	at org.openstreetmap.josm.gui.dialogs.properties.TagEditHelper.addTag(TagEditHelper.java:246)
	at org.openstreetmap.josm.gui.dialogs.properties.PropertiesDialog$AddAction.actionPerformed(PropertiesDialog.java:1114)
	at java.desktop/javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1810)
	at java.desktop/javax.swing.JComponent.processKeyBinding(JComponent.java:2900)
	at java.desktop/javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:311)
	at java.desktop/javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:266)
	at java.desktop/javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2993)
	at java.desktop/javax.swing.JComponent.processKeyBindings(JComponent.java:2985)
	at java.desktop/javax.swing.JComponent.processKeyEvent(JComponent.java:2862)
	at java.desktop/java.awt.Component.processEvent(Component.java:6409)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1950)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:871)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1140)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:1010)
	at java.desktop/java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:836)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Attachments (0)

Change History (3)

comment:1 by GerdP, 5 years ago

Owner: changed from team to GerdP

Maybe a regression from r14509. I can reproduce it.

comment:2 by GerdP, 5 years ago

Resolution: fixed
Status: newclosed

In 14673/josm:

fix #17197 (regression from r14509)

Only reset selection when last edit layer is closed

comment:3 by GerdP, 5 years ago

Milestone: 19.01

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain GerdP.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.