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.
- Download some area (Leavenworth WA in this case)
- Start working on tasks
- Ignore a class of task (they are removed from the list)
- 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 , 2 years ago
comment:2 by , 2 years ago
I think I've been able to reproduce. But maybe it is a different problem.
Steps to reproduce:
- Select a task in the mapview
- Hide the challenge the task is part of
- While holding 'shift', select a task that is still visible.
comment:3 by , 2 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.
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.