﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
22327	Deleting the last layer crash Josm	StephaneP	team	"==== What steps will reproduce the problem?
1. Install area selector plugin
2. Delete the last layer

==== What happens instead?
Sometimes Josm crashes :

{{{
2022-08-30 09:18:52.376 SEVERE: Handled by bug report queue: java.lang.IllegalArgumentException: Listener was not registered before: LayerChangeAdapter [org.openstreetmap.josm.plugins.areaselector.AreaSelectorAction@4536a09a]
java.lang.IllegalArgumentException: Listener was not registered before: LayerChangeAdapter [org.openstreetmap.josm.plugins.areaselector.AreaSelectorAction@4536a09a]
        at org.openstreetmap.josm.gui.layer.LayerManager.removeLayerChangeListener(LayerManager.java:434)
        at org.openstreetmap.josm.actions.JosmAction.destroy(JosmAction.java:277)
        at org.openstreetmap.josm.gui.IconToggleButton.destroy(IconToggleButton.java:73)
        at org.openstreetmap.josm.gui.MapFrame.destroy(MapFrame.java:359)
        at org.openstreetmap.josm.gui.MainPanel.updateContent(MainPanel.java:59)
        at org.openstreetmap.josm.gui.MainPanel$1.afterLastLayerRemoved(MainPanel.java:162)
        at org.openstreetmap.josm.gui.layer.MainLayerManager.realRemoveSingleLayer(MainLayerManager.java:334)
        at org.openstreetmap.josm.gui.layer.LayerManager.realRemoveLayer(LayerManager.java:266)
        at org.openstreetmap.josm.gui.layer.LayerManager.lambda$removeLayer$1(LayerManager.java:248)
        at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:246)
        at org.openstreetmap.josm.gui.layer.LayerManager.removeLayer(LayerManager.java:248)
        at org.openstreetmap.josm.gui.dialogs.layer.DeleteLayerAction.actionPerformed(DeleteLayerAction.java:52)
        at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
        at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
        at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
        at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
        at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
        at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
        at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
        at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3399)
        at java.desktop/java.awt.Component.processEvent(Component.java:6391)
        at java.desktop/java.awt.Container.processEvent(Container.java:2266)
        at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
        at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
        at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
        at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
        at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
        at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
        at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
        at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
        at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
        at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
        at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
        at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
        at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
}}}


==== Please provide any additional information below. Attach a screenshot if possible.

The crash doesn't occur every times. I choose area selector as component because of the error messages.

{{{
Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2022-08-16 15:50:52 +0200 (Tue, 16 Aug 2022)
Revision:18539
Build-Date:2022-08-18 01:30:57
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18539 en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 2009 (19044)
Memory Usage: 672 MB / 16384 MB (238 MB allocated, but free)
Java version: 18-ea+17-1015, Oracle Corporation, OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1920×1080 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→32×32, 32×32→32×32
System property file.encoding: UTF-8
System property sun.jnu.encoding: Cp1252
Locale info: en_FR
Numbers with default locale: 1234567890 -> 1234567890
Dataset consistency test: No problems found

Plugins:
+ DirectUpload (35951)
+ ImportImagePlugin (36013)
+ MakeParallel (v1.1.0)
+ Mapillary (2.0.0-beta.17)
+ OpeningHoursEditor (35924)
+ PicLayer (1.0.2)
+ PolygonCutOut (v0.7)
+ alignways (36011)
+ apache-commons (36003)
+ apache-http (35924)
+ areaselector (405)
+ austriaaddresshelper (1597341117)
+ cadastre-fr (35893)
+ changeset-viewer (v0.0.4)
+ continuosDownload (99)
+ contourmerge (v0.1.9)
+ editgpx (35931)
+ ejml (35924)
+ geotools (36008)
+ jackson (36006)
+ jaxb (35952)
+ jna (36005)
+ jts (36004)
+ log4j (36007)
+ lwjgl (35926)
+ lwjgl-windows (35926)
+ opendata (36011)
+ photo_geotagging (35933)
+ photoadjust (36011)
+ reverter (36011)
+ shrinkwrap (v1.0.4)
+ todo (30306)
+ turnrestrictions (36011)
+ undelete (36011)
+ utilsplugin2 (36011)

Tagging presets:
+ H:\Gares21\gares21\JOSM\Gares21-preset.xml

Map paint styles:
- H:\Gares21\gares21\JOSM\railway-station.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/Enhanced_Lane_and_Road_Attributes&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
- https://raw.githubusercontent.com/species/josm-preset-traffic_sign_direction/master/direction.mapcss
- %UserProfile%\Documents\GitHub\MapCSS-JOSM-Bicycle\cycleway.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/iD&zip=1
- https://github.com/bastik/mapcss-tools/raw/osm/mapnik2mapcss/osm-results/mapnik.zip
- https://josm.openstreetmap.de/josmfile?page=Styles/NewHighwayColors&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/SidewalksPlus&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Maxspeed&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/BesideTheRoad_Speed&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Sidewalks&zip=1

Validator rules:
+ H:\Gares21\gares21\JOSM\railway-station.validator.mapcss

Last errors/warnings:
- 00021.687 E: Failed to locate image 'presets/frame.png'
- 00021.688 W:  Indoor wall: Could not get presets icon presets/frame.png
- 00021.690 E: Failed to locate image 'presets/platform_rail.png'
- 00021.691 W:  Quai ferroviaire: Could not get presets icon presets/platform_rail.png
- 00021.694 E: Failed to locate image 'styles/standard/transport/ticket-machine.png'
- 00021.694 W:  Food vending machine: Could not get presets icon styles/standard/transport/ticket-machine.png
- 40562.916 E: Handled by bug report queue: java.lang.IllegalArgumentException: Listener was not registered before: LayerChangeAdapter [org.openstreetmap.josm.plugins.areaselector.AreaSelectorAction@4536a09a]
- 40569.417 E: java.lang.IllegalStateException: Dialog not created yet. Invoke createInstance() first
- 40569.420 E: Error in layer change listener: java.lang.IllegalStateException: Dialog not created yet. Invoke createInstance() first
- 40569.914 E: Exception raised in EDT: java.lang.reflect.InvocationTargetException. Cause: java.lang.IllegalStateException: Dialog not created yet. Invoke createInstance() first
}}}
"	defect	closed	normal		Plugin areaselector	latest	duplicate	template_report	
