Modify

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 Don-vip, 9 years ago

Cc: michael2402 added
Keywords: gsoc-core added

comment:2 by Don-vip, 9 years ago

Component: CorePlugin conflation

comment:3 by ijsb, 9 years ago

FWIW, a 100% reproducer for me is:

  1. (Start JOSM without any open layers)
  2. Open a gpx file
  3. Remove all created layers
  4. Open a gpx file (either the same one or a different one)
  5. Remove all created layers
  6. Error on removing the last layer

comment:4 by michael2402, 9 years ago

Thanks, this helps a lot. I'll have a look into it.

comment:5 by skyper, 9 years ago

Can reproduce:

What steps will reproduce the problem?

  1. start josm with conflation plugin installed
  2. open a data layer (download/file)
  3. delete layer
  4. open a data layer (download/file)
  5. 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:6 by skyper, 9 years ago

#13261 seems to be similar

comment:7 by michael2402, 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 Don-vip, 9 years ago

If you find a fix you can submit a PR directly to https://github.com/JOSM/josm-conflation-plugin :)

comment:9 by Don-vip, 9 years ago

Ticket #13475 has been marked as a duplicate of this ticket.

comment:10 by Don-vip, 9 years ago

Cc: fk13.kurz@… added
Keywords: regression added

comment:11 by Don-vip, 9 years ago

Ticket #13895 has been marked as a duplicate of this ticket.

comment:12 by Klumbumbus, 9 years ago

similar report #14136

comment:13 by Tyndare, 9 years ago

Resolution: fixed
Status: newclosed

I hope it should be fixed with version 0.4.1 which includes the modification proposed by michael2402.

Modify Ticket

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