Modify

Opened 5 years ago

Closed 5 years ago

#17887 closed defect (fixed)

Relation editor: (I)OOBE when moving members or deleting the last one

Reported by: naoliv Owned by: Don-vip
Priority: blocker Milestone: 19.06
Component: Core Version:
Keywords: template_report relation regression Cc:

Description

Removed a member from a multipolygon relation and got this:

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-07-08 01:14:04 +0200 (Mon, 08 Jul 2019)
Revision:15234
Build-Date:2019-07-07 23:17:09
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (15234 pt_BR) Linux Debian GNU/Linux 10 (buster)
Memory Usage: 996 MB / 2048 MB (295 MB allocated, but free)
Java version: 11.0.4-ea+10-post-Debian-1, Debian, OpenJDK 64-Bit Server VM
Screen: :0.0 1920x1080
Maximum Screen Size: 1920x1080
Java package: openjdk-11-jre:amd64-11.0.4+10-1
Java ATK Wrapper package: libatk-wrapper-java:all-0.33.3-22
libcommons-compress-java: libcommons-compress-java:all-1.18-2
libcommons-logging-java: libcommons-logging-java:all-1.2-2
VM arguments: [-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2, -Dawt.useSystemAAFontSettings=gasp]
Dataset consistency test: No problems found

Plugins:
+ EasyPresets (1537621333)
+ OpeningHoursEditor (34977)
+ SimplifyArea (34977)
+ apache-commons (34908)
+ buildings_tools (34982)
+ ejml (35049)
+ geojson (124)
+ geotools (34908)
+ http2 (35053)
+ jaxb (35014)
+ jogl (1.2.3)
+ jts (34908)
+ log4j (34908)
+ measurement (35051)
+ opendata (34997)
+ reverter (34999)
+ tageditor (34977)
+ tagging-preset-tester (34908)
+ todo (30306)
+ turnlanes-tagging (281)
+ turnrestrictions (34977)
+ undelete (34977)
+ utilsplugin2 (34977)
+ wikipedia (v1.1.1)

Tagging presets:
+ https://josm.openstreetmap.de/josmfile?page=Presets/NewTags&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Golf_Course&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Healthcare&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Industrial&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/Playground_Equipment&zip=1
+ /tmp/saida.xml

Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Surface-DataEntry&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Noname&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_features_ryg&style&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Highway_Nodes&zip=1
- /tmp/newnodes.mapcss
- https://github.com/OSMBrasil/mapnik-brasil/archive/master.zip 
+ https://raw.githubusercontent.com/<user.name>/osm-gambi/master/fixme.mapcss
- /tmp/a.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransport&zip=1
- <josm.pref>/styles/sit.mapcss

Validator rules:
+ ${HOME}/git/validador-josm/Rules_Brazilian-Specific.validator.mapcss
+ ${HOME}/git/validador-josm/staging.validator.mapcss
- /tmp/caray.validator.mapcss
+ ${HOME}/git/validador-josm/nome-ruas-numeros.validator.mapcss
+ ${HOME}/git/osm-gambi/local.validator.mapcss

Last errors/warnings:
- W: Not a single layer for the name 'Imagem Premium da DigitalGlobe': []
- W: Falha ao carregar estilos Mappaint de '/tmp/newnodes.mapcss'. A exceção foi: java.nio.file.NoSuchFileException: /tmp/newnodes.mapcss
- E: java.nio.file.NoSuchFileException: /tmp/newnodes.mapcss
- W: Falha ao carregar estilos Mappaint de '/tmp/a.mapcss'. A exceção foi: java.nio.file.NoSuchFileException: /tmp/a.mapcss
- E: java.nio.file.NoSuchFileException: /tmp/a.mapcss
- E: java.nio.file.NoSuchFileException: /tmp/saida.xml
- E: /tmp/saida.xml
- W: No configuration settings found.  Using hardcoded default values for all pools.
- E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index 3 out of bounds for length 3


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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (19) of main
java.lang.IndexOutOfBoundsException: Index 3 out of bounds for length 3
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:372)
	at java.base/java.util.ArrayList.get(ArrayList.java:458)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.getSelectedMembers(MemberTableModel.java:535)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.hasIncompleteSelectedMembers(MemberTableModel.java:422)
	at org.openstreetmap.josm.gui.dialogs.relation.actions.DownloadSelectedIncompleteMembersAction.updateEnabledState(DownloadSelectedIncompleteMembersAction.java:46)
	at org.openstreetmap.josm.gui.dialogs.relation.actions.AbstractRelationEditorAction.tableChanged(AbstractRelationEditorAction.java:76)
	at java.desktop/javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:297)
	at java.desktop/javax.swing.table.AbstractTableModel.fireTableDataChanged(AbstractTableModel.java:199)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.remove(MemberTableModel.java:307)
	at org.openstreetmap.josm.gui.dialogs.relation.actions.RemoveAction.actionPerformed(RemoveAction.java:36)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	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:6632)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6397)
	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.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	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 (1)

17887_possible.patch (1011 bytes ) - added by taylor.smock 5 years ago.
Fix out of bounds exception. Does not fix selection on drag and drop. When dragging and dropping to the same location, objects are deleted (possibly pre-existing issue).

Download all attachments as: .zip

Change History (18)

comment:1 by skyper, 5 years ago

Ticket #17896 has been marked as a duplicate of this ticket.

comment:2 by skyper, 5 years ago

Priority: normalblocker

comment:3 by Don-vip, 5 years ago

Ticket #17889 has been marked as a duplicate of this ticket.

comment:4 by Don-vip, 5 years ago

Milestone: 19.06
Owner: changed from team to Don-vip
Status: newassigned
Summary: IndexOutOfBoundsException: Index 3 out of bounds for length 3IOOBE at MemberTableModel.getSelectedMembers

comment:5 by Don-vip, 5 years ago

Other related problem from #17892:

java.lang.IndexOutOfBoundsException: Index: 7, Size: 7
	at java.util.ArrayList.rangeCheck(Unknown Source)
	at java.util.ArrayList.get(Unknown Source)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.getValue(MemberTableModel.java:330)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.getValue(MemberTableModel.java:55)
	at org.openstreetmap.josm.data.ReorderableModel.doMove(ReorderableModel.java:79)
	at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.move(MemberTableModel.java:275)
	at org.openstreetmap.josm.gui.util.ReorderableTableModel.moveUp(ReorderableTableModel.java:89)
	at org.openstreetmap.josm.gui.dialogs.relation.actions.MoveUpAction.actionPerformed(MoveUpAction.java:35)

comment:6 by Don-vip, 5 years ago

Ticket #17892 has been marked as a duplicate of this ticket.

comment:7 by Don-vip, 5 years ago

Ticket #17894 has been marked as a duplicate of this ticket.

comment:9 by Don-vip, 5 years ago

Ticket #17900 has been marked as a duplicate of this ticket.

comment:10 by Don-vip, 5 years ago

Keywords: relation regression added
Summary: IOOBE at MemberTableModel.getSelectedMembersRelation editor: MemberTableModel is broken when deleting/moving/sorting members

comment:11 by Klumbumbus, 5 years ago

Ticket #17890 has been marked as a duplicate of this ticket.

comment:12 by Don-vip, 5 years ago

Ticket #17902 has been marked as a duplicate of this ticket.

comment:13 by Don-vip, 5 years ago

In 15235/josm:

see #17887, fix #17904 - NPE when moving the first member of a relation down (patch by taylor.smock)

comment:14 by Don-vip, 5 years ago

Summary: Relation editor: MemberTableModel is broken when deleting/moving/sorting membersRelation editor: (I)OOBE when moving members or deleting the last one

comment:15 by Don-vip, 5 years ago

So we have two issues at hand:

  • moving relation members is broken. Problem fixed in r15235 thanks to taylor.smock
  • deleting the last relation member raises IOOBE. I'm on it

by taylor.smock, 5 years ago

Attachment: 17887_possible.patch added

Fix out of bounds exception. Does not fix selection on drag and drop. When dragging and dropping to the same location, objects are deleted (possibly pre-existing issue).

comment:16 by Don-vip, 5 years ago

Thanks. To check earlier behavior you can test with download/josm-snapshot-15224.jar

comment:17 by taylor.smock, 5 years ago

It does look like a pre-existing issue. I've filed a separate bug as #17906.

comment:18 by Don-vip, 5 years ago

Resolution: fixed
Status: assignedclosed

In 15236/josm:

fix #17887 - make sure relation member selection model remains consistent when removing members

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Don-vip.
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.