﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
24755	panoramax plugin crashed when clicking on the picture	mnalis	taylor.smock	"==== What steps will reproduce the problem?
1. i was browsing several panoramax pictures normally in this sequence: https://panoramax.osm-hr.org/?focus=pic&map=18.9/45.8139799/15.9292149&pic=45725879-4261-4314-b201-53974d914f9a&seq=92b92041-a987-4130-89ed-cc15293243b7&speed=250&theme=default&users=default&xyz=0.00/0.00/30 and notes around it
2. the panoramax plugin ""crash window"" appeared (offering to update, disable, or keep using the plugin)
3. if I keep the plugin and ignore the error, almost all further interactions with Panoramax plugin repeat the crash

==== What is the expected result?
no crash

==== What happens instead?
crash

==== 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-03-28 20:28:41 +0100 (Sat, 28 Mar 2026)
Revision:19555
Build-Date:2026-03-29 01:30:57
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (19555 en) Linux Debian GNU/Linux 13 (trixie)
Memory Usage: 2736 MB / 2987 MB (219 MB allocated, but free)
Java version: 21.0.11+10-1-deb13u2-Debian, 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.11+10-1~deb13u2
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 (1819)
+ PicLayer (273)
+ Review.Changes (1.1.1)
+ apache-commons (36474)
+ apache-http (36474)
+ buildings_tools (36474)
+ conflation (279)
+ ejml (36474)
+ geotools (36474)
+ imagery_offset_db (36474)
+ jackson (36474)
+ jaxb (36474)
+ jna (36474)
+ jts (36474)
+ libphonenumber (9.0.31)
+ log4j (36474)
+ mbtiles (v2.8.1)
+ opendata (36474)
+ openqa (116)
+ osmwiki-dataitem (0.0.8)
+ panoramax (8)
+ phonenumber (1.2.0)
+ pmtiles (36474)
+ pt_assistant (682)
+ reverter (36474)
+ todo (159)
+ turnrestrictions (36474)
+ undelete (36474)
+ urbaneye3d (2.2.2)
+ utilsplugin2 (36497)
+ wikipedia (448)

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
+ https://github.com/simonpoole/beautified-JOSM-preset/releases/latest/download/josm_orig_icons.zip

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:
- 19584.166 W: java.net.SocketTimeoutException: Connect timed out
- 19584.166 W: java.net.SocketTimeoutException: Connect timed out
- 19584.166 W: java.net.SocketTimeoutException: Connect timed out
- 19584.170 W: java.net.SocketTimeoutException: Connect timed out
- 19584.170 W: java.net.SocketTimeoutException: Connect timed out
- 19584.178 W: java.net.SocketTimeoutException: Connect timed out
- 19589.199 E: java.io.FileNotFoundException: /tmp/s/5294337_1.jpg (No such file or directory)
- 19758.396 W: java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
- 19826.882 E: Handled by bug report queue: java.lang.NullPointerException: Cannot invoke ""java.lang.CharSequence.length()"" because ""this.text"" is null
- 19826.934 E: Handled by bug report queue: java.lang.NullPointerException: Cannot invoke ""java.lang.CharSequence.length()"" because ""this.text"" is null



=== 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: Cannot invoke ""java.lang.CharSequence.length()"" because ""this.text"" is null
	at java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1808)
	at java.base/java.util.regex.Matcher.reset(Matcher.java:461)
	at java.base/java.util.regex.Matcher.<init>(Matcher.java:256)
	at java.base/java.util.regex.Pattern.matcher(Pattern.java:1180)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxJosmImage.getExifGpsInstant(PanoramaxJosmImage.java:260)
	at org.openstreetmap.josm.plugins.panoramax.PanoramaxJosmImage.getDisplayName(PanoramaxJosmImage.java:142)
	at org.openstreetmap.josm.gui.layer.geoimage.ImageViewerDialog.updateTitle(ImageViewerDialog.java:1090)
	at org.openstreetmap.josm.gui.layer.geoimage.ImageViewerDialog.updateButtonsNonNullEntry(ImageViewerDialog.java:1019)
	at org.openstreetmap.josm.gui.layer.geoimage.ImageViewerDialog.displayImages(ImageViewerDialog.java:948)
	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.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	
