Opened 9 years ago
Closed 9 years ago
#13182 closed defect (fixed)
IllegalArgumentException: Listener was not registered before: LayerChangeAdapter
| Reported by: | naoliv | Owned by: | team |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Plugin conflation | Version: | |
| Keywords: | gsoc-core regression | Cc: | michael2402, fk13.kurz@… |
Description
Sorry if it's already reported in another ticket, but from what I remember, I just deleted one layer:
URL:http://josm.openstreetmap.de/svn/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2016-07-20 00:25:18 +0200 (Wed, 20 Jul 2016) Build-Date:2016-07-20 01:32:00 Revision:10569 Relative:URL: ^/trunk Identification: JOSM/1.5 (10569 pt_BR) Linux Debian GNU/Linux testing (stretch) Memory Usage: 292 MB / 10206 MB (97 MB allocated, but free) Java version: 1.8.0_91-8u91-b14-3-b14, Oracle Corporation, OpenJDK 64-Bit Server VM VM arguments: [-Dawt.useSystemAAFontSettings=on] Plugins: - Create_grid_of_ways (32440) - ImportImagePlugin (32584) - OpeningHoursEditor (32583) - PicLayer (32495) - RoadSigns (32584) - SimplifyArea (32517) - apache-commons (32584) - buildings_tools (32639) - conflation (0.2.0) - contourmerge (1014) - download_along (32535) - editgpx (32485) - ejml (32639) - geojson (42) - geotools (32584) - importvec (32490) - indoorhelper (32637) - jts (32539) - log4j (32309) - measurement (32454) - merge-overlap (32471) - opendata (32584) - pbf (32584) - pdfimport (32584) - poly (32584) - reverter (32584) - scripting (30723) - todo (29154) - turnrestrictions (32629) - undelete (32584) - utilsplugin2 (32584) Tagging presets: - https://josm.openstreetmap.de/josmfile?page=Presets/NewTags&zip=1 Map paint styles: - <josm.pref>/styles/indoor.mapcss - /tmp/bla-style.mapcss - https://dl.dropbox.com/u/8010189/Forum%20attachments/Hide_nodes.mapcss - https://josm.openstreetmap.de/josmfile?page=Styles/Highway_Nodes&style&zip=1 - https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1 - https://josm.openstreetmap.de/josmfile?page=Styles/Noname&style&zip=1 - https://josm.openstreetmap.de/josmfile?page=Styles/Surface-DataEntry&style&zip=1 Validator rules: - /arquivos/git/validador-josm/Rules_Brazilian-Specific.validator.mapcss - /arquivos/git/validador-josm/staging.validator.mapcss - <josm.pref>/validator/indoorhelper.validator.mapcss Last errors/warnings: - W: Não é possível excluir o arquivo <josm.pref>/cache/tiles/TMS_INDEX.key - W: Não é possível excluir o arquivo <josm.pref>/cache/tiles/TMS_INDEX.data - W: Não é possível excluir o arquivo <josm.pref>/cache/tiles/TMS_INDEX_v2.key - W: Não é possível excluir o arquivo <josm.pref>/cache/tiles/TMS_INDEX_v2.data - W: Plugin seems to be adding listener during mapFrameInitialized(): ContourMergeModelManager#wireToJOSM. Layer listeners should be set on plugin load. - W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$SelectAction@5da790c0 - W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$AddAction@67841cf - W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$PassAction@b9644f7 - W: Old style SideButton usage for action org.openstreetmap.josm.plugins.todo.TodoDialog$MarkAction@498d9275 - E: java.lang.IllegalArgumentException: Listener was not registered before: LayerChangeAdapter [ToggleDialogAction [Conflation]] java.lang.IllegalArgumentException: Listener was not registered before: LayerChangeAdapter [ToggleDialogAction [Conflation]] at org.openstreetmap.josm.gui.layer.LayerManager.removeLayerChangeListener(LayerManager.java:379) at org.openstreetmap.josm.gui.layer.LayerManager.removeLayerChangeListener(LayerManager.java:367) at org.openstreetmap.josm.actions.JosmAction.destroy(JosmAction.java:220) at org.openstreetmap.josm.gui.IconToggleButton.destroy(IconToggleButton.java:72) at org.openstreetmap.josm.gui.MapFrame.destroy(MapFrame.java:346) at org.openstreetmap.josm.gui.MainPanel.updateContent(MainPanel.java:58) at org.openstreetmap.josm.gui.MainPanel$1.afterLastLayerRemoved(MainPanel.java:162) at org.openstreetmap.josm.gui.layer.MainLayerManager.realRemoveSingleLayer(MainLayerManager.java:290) at org.openstreetmap.josm.gui.layer.LayerManager.realRemoveLayer(LayerManager.java:229) at org.openstreetmap.josm.gui.layer.LayerManager$2.run(LayerManager.java:213) at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:146) at org.openstreetmap.josm.gui.layer.LayerManager.removeLayer(LayerManager.java:210) at org.openstreetmap.josm.gui.dialogs.layer.DeleteLayerAction.actionPerformed(DeleteLayerAction.java:48) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6535) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6300) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4891) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 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:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 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)
Attachments (0)
Change History (13)
comment:1 by , 9 years ago
| Cc: | added |
|---|---|
| Keywords: | gsoc-core added |
comment:2 by , 9 years ago
| Component: | Core → Plugin conflation |
|---|
comment:3 by , 9 years ago
comment:5 by , 9 years ago
Can reproduce:
What steps will reproduce the problem?
- start josm with conflation plugin installed
- open a data layer (download/file)
- delete layer
- open a data layer (download/file)
- close josm or delete layer
What is the expected result?
Josm exits or the layer is deleted
What happens instead?
IllegalArgumentException
Please provide any additional information below. Attach a screenshot if possible.
I did not use the plugin at all.
URL:http://josm.openstreetmap.de/svn/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2016-08-09 00:25:24 +0200 (Tue, 09 Aug 2016) Build-Date:2016-08-09 01:35:26 Revision:10770 Relative:URL: ^/trunk Identification: JOSM/1.5 (10770 en) Linux Debian GNU/Linux 8.5 (jessie) Memory Usage: 639 MB / 882 MB (140 MB allocated, but free) Java version: 1.8.0_91-8u91-b14-1~bpo8+1-b14, Oracle Corporation, OpenJDK 64-Bit Server VM Java package: openjdk-8-jre:amd64-8u91-b14-1~bpo8+1 Java ATK Wrapper package: libatk-wrapper-java:all-0.30.5-1 Program arguments: [--language=en] Plugins: + conflation (0.2.0) + jts (32539) + undelete (32584) + utilsplugin2 (32725) Map paint styles: + https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1 Last errors/warnings: - W: java.net.SocketTimeoutException: Read timed out - W: java.net.SocketTimeoutException: Read timed out - W: java.net.SocketTimeoutException: Read timed out - W: java.net.SocketTimeoutException: Read timed out - W: java.net.SocketTimeoutException: Read timed out - W: java.net.SocketTimeoutException: Read timed out - W: java.net.SocketTimeoutException: Read timed out - W: java.net.SocketTimeoutException: Read timed out - W: Unsaved changes - <html>The relation has been changed.<br><br>Do you want to save your changes?</html> - E: java.lang.IllegalArgumentException: Listener was not registered before: LayerChangeAdapter [ToggleDialogAction [Conflation]] === REPORTED CRASH DATA === BugReportExceptionHandler$BugReporterThread#askForBugReport: No data collected. === STACK TRACE === Thread: AWT-EventQueue-0 (17) of main java.lang.IllegalArgumentException: Listener was not registered before: LayerChangeAdapter [ToggleDialogAction [Conflation]] at org.openstreetmap.josm.gui.layer.LayerManager.removeLayerChangeListener(LayerManager.java:364) at org.openstreetmap.josm.gui.layer.LayerManager.removeLayerChangeListener(LayerManager.java:352) at org.openstreetmap.josm.actions.JosmAction.destroy(JosmAction.java:220) at org.openstreetmap.josm.gui.IconToggleButton.destroy(IconToggleButton.java:72) at org.openstreetmap.josm.gui.MapFrame.destroy(MapFrame.java:338) at org.openstreetmap.josm.gui.MainPanel.updateContent(MainPanel.java:58) at org.openstreetmap.josm.gui.MainPanel$1.afterLastLayerRemoved(MainPanel.java:162) at org.openstreetmap.josm.gui.layer.MainLayerManager.realRemoveSingleLayer(MainLayerManager.java:286) at org.openstreetmap.josm.gui.layer.LayerManager.realRemoveLayer(LayerManager.java:219) at org.openstreetmap.josm.gui.layer.LayerManager.lambda$removeLayer$1(LayerManager.java:205) at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:138) at org.openstreetmap.josm.gui.layer.LayerManager.removeLayer(LayerManager.java:205) at org.openstreetmap.josm.gui.layer.LayerManager.resetState(LayerManager.java:423) at org.openstreetmap.josm.gui.layer.MainLayerManager.resetState(MainLayerManager.java:392) at org.openstreetmap.josm.Main.shutdown(Main.java:1146) at org.openstreetmap.josm.gui.MainApplication.shutdown(MainApplication.java:116) at org.openstreetmap.josm.Main.exitJosm(Main.java:1127) at org.openstreetmap.josm.gui.MainFrame$1.windowClosing(MainFrame.java:94) at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349) at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349) at java.awt.Window.processWindowEvent(Window.java:2058) at javax.swing.JFrame.processWindowEvent(JFrame.java:305) at java.awt.Window.processEvent(Window.java:2017) at java.awt.Component.dispatchEventImpl(Component.java:4891) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 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:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 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)
comment:7 by , 9 years ago
I havn't found time to dig into it more...
The problem is that the ToggleDialogAction [Conflation] is destroyed twice.
I think that this can be solved by removing the dialog field of ConflationPlugin and re-creating the dialog every time the map frame is initialized. I don't know if this will introduce side effects.
comment:8 by , 9 years ago
If you find a fix you can submit a PR directly to https://github.com/JOSM/josm-conflation-plugin :)
comment:10 by , 9 years ago
| Cc: | added |
|---|---|
| Keywords: | regression added |
comment:13 by , 9 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
I hope it should be fixed with version 0.4.1 which includes the modification proposed by michael2402.



FWIW, a 100% reproducer for me is: