Modify

Opened 16 months ago

Closed 16 months ago

Last modified 16 months ago

#23116 closed defect (fixed)

Can't add members to created relations

Reported by: josm@… Owned by: team
Priority: major Milestone: 23.08
Component: Core Version: latest
Keywords: template_report Cc: taylor.smock

Description

What steps will reproduce the problem?

  1. Open an existing file.
  2. Create a new relation, or duplicate an existing relation. Don't save it.
  3. Attempt to add any members to this relation.

What is the expected result?

Members are added to the relation.

What happens instead?

A bug report dialog appears, and nothing is added to the relation.

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

This bug occurs only for relations that don't already exist in the file (the relation editor dialog is titled "Create new relation", not "Edit new relation" or "Edit relation #x xxx xxx"). Such relations can be saved to the file and then the error will not occur, but only non-empty relations can be saved as such (duplicated relations or relations made from templates); those created by the "New" button in the relation list are permanently stuck because the only confirmation button is "Delete".

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2023-08-09 22:24:34 +0200 (Wed, 09 Aug 2023)
Revision:18803
Build-Date:2023-08-10 01:30:57
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18803 en) Windows 10 64-Bit
OS Build number: Windows 10 Home 2009 (19045)
Memory Usage: 570 MB / 4068 MB (288 MB allocated, but free)
Java version: 17.0.4+8, Eclipse Adoptium, OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1920×1080 (scaling 1.00×1.00) \Display1 1920×1080 (scaling 1.00×1.00) \Display2 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→32×32, 32×32→32×32
System property file.encoding: Cp1252
System property sun.jnu.encoding: Cp1252
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
Dataset consistency test: No problems found

Plugins:
+ apache-commons (36034)
+ continuosDownload (1.3.4)
+ ejml (35924)
+ geotools (36068)
+ imagery_offset_db (36079)
+ jackson (36034)
+ jaxb (35952)
+ jts (36004)
+ opendata (36097)
+ turnrestrictions (36097)
+ utilsplugin2 (36097)

Map paint styles:
+ https://github.com/bastik/mapcss-tools/raw/osm/mapnik2mapcss/osm-results/mapnik.zip

Last errors/warnings:
- 00000.226 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF'
- 00000.228 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF'
- 00003.031 W: Unable to request certificate of https://roottest-g3.pkioverheid.nl
- 00003.666 W: Unable to request certificate of https://roottest-g3.pkioverheid.nl
- 00149.689 E: Handled by bug report queue: java.lang.NullPointerException: Cannot invoke "org.openstreetmap.josm.data.osm.OsmPrimitive.getKeys()" because the return value of "java.util.Iterator.next()" is null



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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (23) of main
java.lang.NullPointerException: Cannot invoke "org.openstreetmap.josm.data.osm.OsmPrimitive.getKeys()" because the return value of "java.util.Iterator.next()" is null
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.getRelationMemberForPrimitive(MemberTableModel.java:435)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.addMembersAtIndex(MemberTableModel.java:423)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.addMembersAtEnd(MemberTableModel.java:475)
	at org.openstreetmap.josm.gui.dialogs.relation.actions.AddSelectedAtEndAction.actionPerformed(AddSelectedAtEndAction.java:38)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
	at java.desktop/java.awt.Component.processEvent(Component.java:6391)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
	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 (6)

comment:1 by gaben, 16 months ago

Thank you, reproduced.

comment:3 by taylor.smock, 16 months ago

The last release is r18789. Thank you for running the current latest (r18803).

@gaben: Are you working on this, or should I? Either way, I think I'll want to add a non-regression test for this.

comment:4 by gaben, 16 months ago

Please go ahead, I can do further JOSM related activities only sometime next week.

comment:5 by taylor.smock, 16 months ago

Resolution: fixed
Status: newclosed

In 18804/josm:

Fix #23116: Adding a member to a newly created relation will cause an NPE

This was caused by returning a null relation for a new relation.

comment:6 by taylor.smock, 16 months ago

Milestone: 23.08

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. 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.