Opened 5 years ago
Last modified 5 years ago
#19913 closed defect
IOOBE: Index 254 out of bounds for length 0: Saving a relation, after splitting a child member with open relation editor — at Version 8
| Reported by: | skyper | Owned by: | GerdP |
|---|---|---|---|
| Priority: | normal | Milestone: | 20.11 |
| Component: | Core | Version: | latest |
| Keywords: | template_report relation editor refresh conflict | Cc: |
Description (last modified by )
This is a follow up of #19353. Sadly, the situation is not much better.
What steps will reproduce the problem?
- Have a relation editor with some ways as member of the relation
- Split one way
- Change the order in the memberlist
- Save relation
What is the expected result?
After 2. the refesh button should be active an autorefresh is needed.
After 4. the relation should be saved without problem.
What happens instead?
After 2. the new way is not in the memberlist of the relation editor
After 4. a conflict and an exception similar to #19055.
Please provide any additional information below. Attach a screenshot if possible.
It seems I do not get around the conflict at all, as the reload is not possible. Strange.
Relative:URL: ^/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2020-10-11 00:39:35 +0200 (Sun, 11 Oct 2020) Revision:17154 Build-Date:2020-10-11 01:30:48 URL:https://josm.openstreetmap.de/svn/trunk Identification: JOSM/1.5 (17154 en) Linux Debian GNU/Linux 10 (buster) Java version: 11.0.8+10-post-Debian-1deb10u1, Debian, OpenJDK 64-Bit Server VM Look and Feel: com.formdev.flatlaf.FlatDarculaLaf Java package: openjdk-11-jre:amd64-11.0.8+10-1~deb10u1 Dataset consistency test: No problems found Plugins: … Tagging presets: … Map paint styles: … Validator rules: … Last errors/warnings: - 00206.109 W: java.net.SocketTimeoutException: Read timed out - 10821.566 W: Conflicts detected - <html>There was 1 conflict detected.</html> - 14144.366 W: Conflict in data - <html>This relation has been changed outside of the editor.<br>You cannot apply your changes and continue editing.<br><br>Do you want to create a conflict and close the editor?</html> - 14153.254 W: Unsaved changes - <html>You have unsaved changes in this editor window.<br><br>Do you want to discard these changes and reload data from layer?</html> - 14160.505 W: Conflict in data - <html>This relation has been changed outside of the editor.<br>You cannot apply your changes and continue editing.<br><br>Do you want to create a conflict and close the editor?</html> - 14162.641 E: Handled by bug report queue: java.lang.IndexOutOfBoundsException: Index 254 out of bounds for length 0 === REPORTED CRASH DATA === BugReportExceptionHandler#handleException: No data collected. Warning issued by: BugReportExceptionHandler#handleException === STACK TRACE === Thread: AWT-EventQueue-0 (17) of main java.lang.IndexOutOfBoundsException: Index 254 out of bounds for length 0 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:459) at java.base/java.util.stream.IntPipeline$1$1.accept(IntPipeline.java:180) at java.base/java.util.Spliterators$IntArraySpliterator.forEachRemaining(Spliterators.java:1032) at java.base/java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:699) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.getSelectedMembers(MemberTableModel.java:515) at org.openstreetmap.josm.gui.dialogs.relation.MemberTableModel.hasIncompleteSelectedMembers(MemberTableModel.java:415) 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.populate(MemberTableModel.java:226) at org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor.populateModels(GenericRelationEditor.java:331) at org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor.reloadDataFromRelation(GenericRelationEditor.java:317) at org.openstreetmap.josm.gui.dialogs.relation.actions.ApplyAction.actionPerformed(ApplyAction.java:32) 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:6635) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6400) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5011) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4843) 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:4843) 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)
Change History (8)
follow-up: 2 comment:1 by , 5 years ago
follow-up: 3 comment:2 by , 5 years ago
Replying to GerdP:
Can you reproduce this with the tested version?
The problem with the disabled refresh button and always facing a conflict: yes.
The exception only occurs with latest, so far.
follow-up: 5 comment:3 by , 5 years ago
Replying to skyper:
Replying to GerdP:
Can you reproduce this with the tested version?
The problem with the disabled refresh button and always facing a conflict: yes.
OK, I see the same.
The exception only occurs with latest, so far.
The traceback contains DownloadSelectedIncompleteMembersAction. You don't mention this action in the description. Maybe you clicked the wrong button?
I can reproduce the problem with the latest version.
comment:4 by , 5 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:5 by , 5 years ago
Replying to GerdP:
Replying to skyper:
Replying to GerdP:
Can you reproduce this with the tested version?
The problem with the disabled refresh button and always facing a conflict: yes.
OK, I see the same.
Good.
The exception only occurs with latest, so far.
The traceback containsDownloadSelectedIncompleteMembersAction. You don't mention this action in the description. Maybe you clicked the wrong button?
I can reproduce the problem with the latest version.
No, I do not click the wrong button but it seems to be in all the tracebacks as I get this exception all the time and the only way to work around it is to close the relation editor before splitting a way.
comment:7 by , 5 years ago
Reg. the refresh button:
I wonder what exactly is expected to happen when you click on the refresh button presuming that it is activated. My understanding was that this should give the same result as the sequence Cancel (without saving) ->Reopen editor for the relation. Not sure what whould happen when the relation was deleted, see #19915.
The current code doesn't use the current version that is displayed in the relation list, instead it "reloads" the version that existed when the relation editor was opened. So, this is not a refresh but some kind of "full undo".
comment:8 by , 5 years ago
| Description: | modified (diff) |
|---|



Can you reproduce this with the tested version?