﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
18474	Surveyor plugin in a low memory environment leads to unhandled exception	anonymous	team	"==== What steps will reproduce the problem?
1. Was using the LiveGPS and Surveyor plugins on Raspberry Pi Buster with gpsd 3.19-dev.
2. Enabled LiveGPS auto-center and LiveGPS layer.
3. Chose Surveyor from the plugin menu.
4. This is a really low-memory situation, top says 30 MiB free.
5. JOSM says: ""An unexpected exception occurred that may have come from the 'surveyor' plugin.""
6. Click on Update plugin
7. JOSM says: ""JOSM could not find information about the following plugins: livegps surveyor""
8. JOSM opens the dialog telling me to file this bug.

==== What is the expected result?

The surveyor plugin should open.

==== What happens instead?

A dialog telling me to file a bug is opened.

==== Please provide any additional information below. Attach a screenshot if possible.

{{{
Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-12-01 23:10:15 +0100 (Sun, 01 Dec 2019)
Revision:15553
Build-Date:2019-12-02 02:30:57
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (15553 en) Linux Raspbian GNU/Linux 10 (buster)
Memory Usage: 224 MB / 224 MB (42 MB allocated, but free)
Java version: 11.0.5+10-post-Raspbian-1deb10u1, Raspbian, OpenJDK Server VM
Screen: :0.0 1920x1080
Maximum Screen Size: 1920x1080
Java package: openjdk-11-jre:armhf-11.0.5+10-1~deb10u1
fonts-noto: fonts-noto:-
Dataset consistency test: No problems found

Plugins:
+ livegps (35248)
+ surveyor (35253)

Last errors/warnings:
- W: livegps.LiveGpsLayer:setCurrentPosition calling WayPoint.put(PT_TIME, ..) is deprecated. Use WayPoint.setTime(..) instead.
- W: livegps.LiveGpsLayer:setCurrentPosition calling WayPoint.put(PT_TIME, ..) is deprecated. Use WayPoint.setTime(..) instead.
- W: livegps.LiveGpsLayer:setCurrentPosition calling WayPoint.put(PT_TIME, ..) is deprecated. Use WayPoint.setTime(..) instead.
- W: livegps.LiveGpsLayer:setCurrentPosition calling WayPoint.put(PT_TIME, ..) is deprecated. Use WayPoint.setTime(..) instead.
- E: Failed to locate image 'styles/standard/vehicle/tunnel.png'
- E: Failed to locate image 'styles/standard/vehicle/tunnel.png'
- E: Failed to locate image 'styles/standard/vehicle/tunnel.png'
- E: Failed to locate image 'styles/standard/vehicle/tunnel.png'
- E: Handled by bug report queue: java.lang.NullPointerException: name
- W: Warning - <html>JOSM could not find information about the following plugins:<ul><li>livegps</li><li>surveyor</li></ul>The plugins are not going to be loaded.</html>


=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (17) of main
java.lang.NullPointerException: name
	at java.base/java.util.Objects.requireNonNull(Objects.java:246)
	at org.openstreetmap.josm.tools.ImageProvider.<init>(ImageProvider.java:333)
	at org.openstreetmap.josm.tools.ImageProvider.getIfAvailable(ImageProvider.java:823)
	at org.openstreetmap.josm.plugins.surveyor.ButtonDescription.createComponent(ButtonDescription.java:177)
	at org.openstreetmap.josm.plugins.surveyor.SurveyorComponent.addButton(SurveyorComponent.java:106)
	at org.openstreetmap.josm.plugins.surveyor.SurveyorShowAction.createComponent(SurveyorShowAction.java:153)
	at org.openstreetmap.josm.plugins.surveyor.SurveyorShowAction.createComponent(SurveyorShowAction.java:119)
	at org.openstreetmap.josm.plugins.surveyor.SurveyorShowAction.actionPerformed(SurveyorShowAction.java:56)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	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.AbstractButton.doClick(AbstractButton.java:369)
	at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1020)
	at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1064)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
	at java.desktop/java.awt.Component.processEvent(Component.java:6397)
	at java.desktop/java.awt.Container.processEvent(Container.java:2263)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	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)
}}}
"	defect	closed	normal		Plugin surveyor		duplicate	template_report	
