I sometimes get this error when calling setViewerTransform. Should this method be called with SwingUtililies.invokeLater ? Or should I acquire a lock ?
Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException
at java.util.ArrayList.forEach(ArrayList.java:1262)
at bdv.viewer.BasicViewerState.notifyListeners(BasicViewerState.java:1650)
at bdv.viewer.BasicViewerState.setViewerTransform(BasicViewerState.java:353)
at bdv.viewer.SynchronizedViewerState.setViewerTransform(SynchronizedViewerState.java:170)
at bdv.TransformState$1.set(TransformState.java:74)
at bdv.TransformEventHandler3D.setCanvasSize(TransformEventHandler3D.java:335)
at bdv.viewer.InteractiveDisplayCanvas$1.componentResized(InteractiveDisplayCanvas.java:102)
at java.awt.Component.processComponentEvent(Component.java:6365)
at java.awt.Component.processEvent(Component.java:6319)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
I sometimes get this error when calling
setViewerTransform. Should this method be called withSwingUtililies.invokeLater? Or should I acquire a lock ?