﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
24650	Panoramax doubleclick leads to JOSM hang & bug report window	mnalis	taylor.smock	"==== What steps will reproduce the problem?
1. Have Panoramax layer opened
2. I clicked on a panoramax dot, but image didn't appear.
3. so I clicked few more time, still no image
4. then I doubleclicked the image and the JOSM froze for half a dozen seconds, finally spitting out the error

==== What is the expected result?
panoramax image be displayed when clicked on

==== What happens instead?
JOSM ""crash"" window appears after a delay

==== Please provide any additional information below. Attach a screenshot if possible.

{{{
Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2026-01-31 13:00:34 +0100 (Sat, 31 Jan 2026)
Revision:19481
Build-Date:2026-02-01 02:30:45
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (19481 en) Linux Debian GNU/Linux 13 (trixie)
Memory Usage: 2883 MB / 2987 MB (121 MB allocated, but free)
Java version: 21.0.10+7-Debian-1deb13u1, Debian, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920x1080x[Multi depth]@60Hz (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
Best cursor sizes: 16×16→16×16, 32×32→32×32
Environment variable LANG: en_US.UTF-8
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
Desktop environment: ICEWM
Java package: openjdk-21-jre:amd64-21.0.10+7-1~deb13u1
libcommons-compress-java: libcommons-compress-java:all-1.27.1-2
libcommons-logging-java: libcommons-logging-java:all-1.3.0-2
fonts-noto: fonts-noto:all-20201225-2
VM arguments: [-Dsun.java2d.opengl=true, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED]
Dataset consistency test: No problems found

Plugins:
+ DirectUpload (36474)
+ FixAddresses (36474)
+ ImageWayPoint (36474)
+ Mapillary
+ PicLayer (272)
+ Review.Changes (1.1.1)
+ apache-commons (36474)
+ apache-http (36474)
+ buildings_tools (36474)
+ conflation (277)
+ ejml (36474)
+ geotools (36474)
+ imagery_offset_db (36474)
+ jackson (36474)
+ jaxb (36474)
+ jna (36474)
+ jts (36474)
+ libphonenumber (9.0.24)
+ log4j (36474)
+ mbtiles (v2.6.1)
+ opendata (36474)
+ openqa (116)
+ osmwiki-dataitem (0.0.8)
+ panoramax (7)
+ phonenumber (1.1.1)
+ pmtiles (36474)
+ pt_assistant (681)
+ reverter (36474)
+ todo (158)
+ turnrestrictions (36474)
+ undelete (36474)
+ utilsplugin2 (36474)
+ wikipedia (446)

Tagging presets:
+ https://raw.githubusercontent.com/OpenNauticalChart/josm/master/INT-1-preset.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/Healthcare&zip=1
+ https://<user.name>.com/prezentacije/OpenStreetMap/josm-preset.xml
+ https://josm.openstreetmap.de/josmfile?page=Presets/Xmas&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Presets/GuidepostDirectionsAndDestinations&zip=1

Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransport&zip=1
+ http://bezdomni.net/Styles_HighlightedCapesBays-style.mapcss
+ https://josm.openstreetmap.de/josmfile?page=Styles/ColorWays&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Coloured_Streets&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Modified&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/CyclewaysStylingBNA&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/SidewalksPlus&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/BuildingColors&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/FixmeAndNote&zip=1
+ ${HOME}/tmp/g/1/openaddresses-HR.mapcss

Validator rules:
+ https://josm.openstreetmap.de/josmfile?page=Rules/KeepRight&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/QAToolInspiredValidations&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/OSMLint&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingWeekdays&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/SourceObjectTag&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/IndoorRules&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/Pictures&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingOpeningHours&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/CheckDate&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/FacebookWebsite&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/DuplicateAttributes&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/MissingMain&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/OldCovid&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/NotCheck&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/ThisOrThat&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/ChargeRules&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/InvalidWebsiteProtocol&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/AddrFullWarning&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/AddrRelationWarning&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/CountryCodeCheck&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Rules/Geology&zip=1
+ https://raw.githubusercontent.com/stefan-a-bauer/josm-validators/master/mtb.validator.mapcss
+ https://github.com/Jungle-Bus/transport_mapcss/raw/gh-pages/transport.validator.zip
+ https://github.com/open-energy-transition/validate-my-grid/raw/refs/heads/gh-pages/power.validator.zip
+ https://josm.openstreetmap.de/josmfile?page=Rules/PublicTransportGtfs&zip=1
+ https://raw.githubusercontent.com/OpenNauticalChart/josm/master/Seamark.validator.mapcss
+ https://josm.openstreetmap.de/josmfile?page=Rules/UnresolvedFIXMEs&zip=1

Last errors/warnings:
- 292489.930 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 292534.062 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 293652.522 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 301446.976 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 301908.330 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 303444.998 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 304367.544 E: Handled by bug report queue: java.lang.NullPointerException
- 304379.299 E: Handled by bug report queue: java.lang.NullPointerException
- 304390.608 E: Handled by bug report queue: java.lang.NullPointerException
- 304402.072 E: Handled by bug report queue: java.lang.NullPointerException



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (25) of main
java.lang.NullPointerException
	at java.base/java.util.Objects.requireNonNull(Objects.java:233)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseArray(PanoramaxDeserializer.java:113)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parse(PanoramaxDeserializer.java:127)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.getJsonArgs(PanoramaxDeserializer.java:105)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseObject(PanoramaxDeserializer.java:87)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parse(PanoramaxDeserializer.java:130)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.getJsonArgs(PanoramaxDeserializer.java:105)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseObject(PanoramaxDeserializer.java:87)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parse(PanoramaxDeserializer.java:130)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.getJsonArgs(PanoramaxDeserializer.java:105)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseImage(PanoramaxDeserializer.java:45)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseObject(PanoramaxDeserializer.java:84)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parse(PanoramaxDeserializer.java:130)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseArray(PanoramaxDeserializer.java:117)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parse(PanoramaxDeserializer.java:127)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxDeserializer.parseCollection(PanoramaxDeserializer.java:34)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxApi.getRealCollection(PanoramaxApi.java:67)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxApi.lambda$getCollection$0(PanoramaxApi.java:59)
	at org.apache.commons.jcs3.access.CacheAccess.get(CacheAccess.java:95)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxApi.getCollection(PanoramaxApi.java:59)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxApi.lambda$getItem$4(PanoramaxApi.java:105)
	at org.apache.commons.jcs3.access.CacheAccess.get(CacheAccess.java:95)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxApi.getItem(PanoramaxApi.java:104)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxLayer.getImageFromPrimitive(PanoramaxLayer.java:177)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
	at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
	at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
	at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
	at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxLayer.getSelection(PanoramaxLayer.java:169)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxLayer.selectionChanged(PanoramaxLayer.java:156)
	at java.base/java.util.Optional.ifPresent(Optional.java:178)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxLayer.fireClickEvent(PanoramaxLayer.java:216)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxLayer$DataMouseListener.mouseClicked(PanoramaxLayer.java:253)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:280)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:279)
	at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:279)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6624)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398)
	at java.desktop/java.awt.Component.processEvent(Component.java:6386)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4996)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4828)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4584)
	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:4828)
	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:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
	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:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	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)
}}}
"	defect	new	normal		Plugin panoramax			template_report	
