Skip to content

Map Plottable Renderer Concurrent Modification Exception #1843

Closed
@DSheirer

Description

@DSheirer

sdrtrunk Version
master

Describe the bug
We get an exception if the application decodes an additional GPS location for an entity while the map is in the middle of rendering or updating the history trail.

2024-01-30 08:29:10.226 INFO i.g.d.a.b.b.BroadcastifyCallBroadcaster - Broadcastify Calls keep-alive success [731MB/1GB 70%]
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.base/java.util.ArrayList$Itr.next(Unknown Source)
at java.base/java.util.Collections$UnmodifiableCollection$1.next(Unknown Source)
at io.github.dsheirer.map.PlottableEntityRenderer.drawRoute(PlottableEntityRenderer.java:167)
at io.github.dsheirer.map.PlottableEntityRenderer.paintRoute(PlottableEntityRenderer.java:156)
at io.github.dsheirer.map.PlottableEntityRenderer.paintPlottableEntity(PlottableEntityRenderer.java:75)
at io.github.dsheirer.map.PlottableEntityPainter.doPaint(PlottableEntityPainter.java:77)
at io.github.dsheirer.map.PlottableEntityPainter.doPaint(PlottableEntityPainter.java:34)
at org.jdesktop.swingx.painter.AbstractPainter.paint(AbstractPainter.java:432)
at org.jdesktop.swingx.JXMapViewer.drawOverlays(JXMapViewer.java:318)
at org.jdesktop.swingx.JXMapViewer.doPaintComponent(JXMapViewer.java:193)
at org.jdesktop.swingx.JXMapViewer.paintComponent(JXMapViewer.java:175)
at java.desktop/javax.swing.JComponent.paint(Unknown Source)
at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
at java.desktop/javax.swing.RepaintManager$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.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.desktop/java.awt.event.InvocationEvent.dispatch(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.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)

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions