Modify

Opened 2 years ago

Closed 2 years ago

#22718 closed defect (fixed)

ArrayIndexOutOfBoundsException in MapRoulette Plugin while selecting elements from the map

Reported by: watmildon Owned by: taylor.smock
Priority: normal Milestone:
Component: Plugin MapRoulette Version:
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

I cannot get this to repro after restart but figured I'd post it in case it's obvious to you.

  1. Download some area (Leavenworth WA in this case)
  2. Start working on tasks
  3. Ignore a class of task (they are removed from the list)
  4. Eventually click on a node on the map that is part of a MR task and get this exception

What is the expected result?

No exception

What happens instead?

Exception

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

Revision:18646
Build-Date:2023-01-30 15:15:00

Identification: JOSM/1.5 (18646 en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 2009 (19045)
Memory Usage: 648 MB / 4088 MB (139 MB allocated, but free)
Java version: 17.0.6+10-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1440×2560 (scaling 1.00×1.00) \Display1 3840×2160 (scaling 1.50×1.50)
Maximum Screen Size: 3840×2560
Best cursor sizes: 16×16→48×48, 32×32→48×48
System property file.encoding: Cp1252
System property sun.jnu.encoding: Cp1252
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Djpackage.app-version=1.5.18646, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djpackage.app-path=%UserProfile%\AppData\Local\JOSM\JOSM.exe]
Dataset consistency test: No problems found

Plugins:
+ FastDraw (35978)
+ FixAddresses (36011)
+ MapRoulette (1675723278)
+ apache-commons (36034)
+ apache-http (35924)
+ buildings_tools (36011)
+ conflation (0.6.9)
+ continuosDownload (105)
+ contourmerge (v0.1.9)
+ ejml (35924)
+ geotools (36028)
+ gridify (1606242219)
+ imagery_offset_db (35978)
+ jackson (36034)
+ jaxb (35952)
+ jna (36005)
+ jts (36004)
+ mapwithai (1.10.4)
+ opendata (36025)
+ reverter (36043)
+ tageditor (36011)
+ terracer (35978)
+ todo (30306)
+ turnrestrictions (36011)
+ utilsplugin2 (36011)
+ wikipedia (605)

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/TigerReviewedNo&zip=1
- %UserProfile%\Address Tags Validator - Highlight unaddressed
- https://josm.openstreetmap.de/josmfile?page=Styles/Modified&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/AddressValidator&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/MapWithAI&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Coloured_Streets&zip=1

Last errors/warnings:
- 00000.408 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF'
- 00000.411 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF'
- 00002.501 E: java.security.KeyStoreException: Windows-ROOT not found. Cause: java.security.NoSuchAlgorithmException: Windows-ROOT KeyStore not available
- 00015.981 E: Failed to locate image 'MapWithAI'
- 08262.803 E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=400, Error Header=<You requested too many nodes (limit is 50000). Either request a smaller area, or use planet.osm>
- 08262.814 E: Bad Request - <html>The OSM server 'api.openstreetmap.org' reported a bad request.<br><br>The area you tried to download is too big or your request was too large.<br>Either request a smaller area or use an export file provided by the OSM community.</html>
- 08708.673 E: Error header: Version mismatch: Provided 1, server had: 2 of Node 6346179887
- 08708.829 E: Conflicts detected - <html>Uploading <strong>failed</strong> because the server has a newer version of one<br>of your nodes, ways, or relations.<br>The conflict is caused by the <strong>node</strong> with id <strong>6 346 179 887</strong>,<br>the server has version 2, your version is 1.<br><br>Click <strong>Synchronize node 6 346 179 887 only</strong> to synchronize the conflicting primitive only.<br>Click <strong>Synchronize entire dataset</strong> to synchronize the entire local dataset with the server.<br>Click <strong>Cancel</strong> to abort and continue editing.<br></html>
- 09122.744 E: Handled by bug report queue: java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 96



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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (23) of main
java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 96
	at java.desktop/javax.swing.DefaultRowSorter.convertRowIndexToModel(Unknown Source)
	at java.desktop/javax.swing.JTable.convertRowIndexToModel(Unknown Source)
	at java.desktop/javax.swing.JTable.getValueAt(Unknown Source)
	at org.openstreetmap.josm.plugins.maproulette.gui.TaskListPanel$DownloadDataAction.lambda$download$4(TaskListPanel.java:329)
	at org.openstreetmap.josm.plugins.maproulette.gui.layer.MapRouletteClusteredPointLayer.setSelected(MapRouletteClusteredPointLayer.java:291)
	at org.openstreetmap.josm.plugins.maproulette.gui.layer.MapRouletteClusteredPointLayer.mouseClicked(MapRouletteClusteredPointLayer.java:272)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$5.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)

Attachments (0)

Change History (3)

comment:1 by watmildon, 2 years ago

After playing with this some more I am convinced it happens after hiding a challenge and then selecting an element that previously had an entry on the MRP list. There may be some race here as the icons are removed from the map.

comment:2 by taylor.smock, 2 years ago

I think I've been able to reproduce. But maybe it is a different problem.

Steps to reproduce:

  1. Select a task in the mapview
  2. Hide the challenge the task is part of
  3. While holding 'shift', select a task that is still visible.

comment:3 by taylor.smock, 2 years ago

Resolution: fixed
Status: assignedclosed

Modify Ticket

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