﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
22204	"NPE: Cannot invoke ""String.length()"" because ""<parameter1>"" is null"	anonymous	team	"erased maxar then loaded bing crashed

==== What steps will reproduce the problem?
1. erase imagery
2. load new inmagery
3. 

==== What is the expected result?
bing to load imagery
==== What happens instead?
crash report
==== Please provide any additional information below. Attach a screenshot if possible.

{{{
Revision:18513
Build-Date:2022-07-08 01:44:25

Identification: JOSM/1.5 (18513 en_GB) Windows 10 64-Bit
OS Build number: Windows 10 Home 2009 (19044)
Memory Usage: 1088 MB / 4068 MB (745 MB allocated, but free)
Java version: 17.0.3+7-LTS, Azul Systems, Inc., 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: Cp1252
System property sun.jnu.encoding: Cp1252
Locale info: en_GB
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Djpackage.app-version=1.5.18513, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, --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, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djpackage.app-path=%UserProfile%\AppData\Local\JOSM\JOSM.exe]
Dataset consistency test: No problems found

Plugins:
+ ImproveWay (32)
+ apache-commons (35924)
+ apache-http (35924)
+ buildings_tools (35997)
+ changeset-viewer (v0.0.4)
+ imagery_offset_db (35978)
+ jna (35924)
+ junctionchecking (35893)
+ mapwithai-dev (1.9.16)
+ merge-overlap (35893)
+ terracer (35978)
+ undelete (35893)
+ utilsplugin2 (36001)

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/MapWithAI&zip=1

Last errors/warnings:
- 00024.923 E: Failed to locate image 'MapWithAI'
- 00325.279 E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=0. Cause: org.openstreetmap.josm.io.OfflineAccessException: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)
- 00325.290 E: Offline mode - <html>Failed to download data.<br><br>Details: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)</html>
- 00625.275 E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=0. Cause: org.openstreetmap.josm.io.OfflineAccessException: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)
- 00625.281 E: Offline mode - <html>Failed to download data.<br><br>Details: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)</html>
- 01225.274 E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=0. Cause: org.openstreetmap.josm.io.OfflineAccessException: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)
- 01225.341 E: Offline mode - <html>Failed to download data.<br><br>Details: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)</html>
- 01525.287 E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=0. Cause: org.openstreetmap.josm.io.OfflineAccessException: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)
- 01525.295 E: Offline mode - <html>Failed to download data.<br><br>Details: https://api.openstreetmap.org/api/0.6/user/details not available (offline mode)</html>
- 01567.751 E: Handled by bug report queue: java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke ""String.length()"" because ""<parameter1>"" is null. Cause: java.lang.NullPointerException: Cannot invoke ""String.length()"" because ""<parameter1>"" is null



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (24) of main
java.lang.RuntimeException: java.lang.NullPointerException: Cannot invoke ""String.length()"" because ""<parameter1>"" is null
	at org.openstreetmap.gui.jmapviewer.tilesources.BingAerialTileSource.getAttribution(BingAerialTileSource.java:280)
	at org.openstreetmap.gui.jmapviewer.tilesources.BingAerialTileSource.getTileUrl(BingAerialTileSource.java:99)
	at org.openstreetmap.gui.jmapviewer.Tile.getUrl(Tile.java:270)
	at org.openstreetmap.josm.data.imagery.TMSCachedTileLoaderJob.getUrl(TMSCachedTileLoaderJob.java:111)
	at org.openstreetmap.josm.data.cache.JCSCachedTileLoaderJob.submit(JCSCachedTileLoaderJob.java:149)
	at org.openstreetmap.josm.data.imagery.TMSCachedTileLoaderJob.submit(TMSCachedTileLoaderJob.java:176)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.loadTile(AbstractTileSourceLayer.java:926)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.access$200(AbstractTileSourceLayer.java:145)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer$TileSet.loadAllTiles(AbstractTileSourceLayer.java:1318)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer$TileSet.access$1100(AbstractTileSourceLayer.java:1227)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.drawInViewArea(AbstractTileSourceLayer.java:1578)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.access$2700(AbstractTileSourceLayer.java:145)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer$TileSourcePainter.doPaint(AbstractTileSourceLayer.java:2022)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer$TileSourcePainter.paint(AbstractTileSourceLayer.java:2004)
	at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:469)
	at org.openstreetmap.josm.gui.MapView.drawMapContent(MapView.java:558)
	at org.openstreetmap.josm.gui.MapView.paint(MapView.java:491)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JSplitPane.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JLayeredPane.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Cannot invoke ""String.length()"" because ""<parameter1>"" is null
	at java.base/java.io.StringReader.<init>(Unknown Source)
	at org.openstreetmap.josm.data.imagery.CachedAttributionBingAerialTileSource.lambda$getAttributionLoaderCallable$0(CachedAttributionBingAerialTileSource.java:83)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
}}}
"	defect	new	normal		Core imagery			template_report	
