Opened 7 years ago
Closed 7 years ago
#15216 closed defect (fixed)
WMTS imagery fails with mismatching projection
Reported by: | SanderH | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | 17.08 |
Component: | Core imagery | Version: | |
Keywords: | template_report wmts projection | Cc: |
Description
What steps will reproduce the problem?
- Set projection to Mercator in Preferences
- Add the WMTS imagery layer https://geodata.nationaalgeoregister.nl/luchtfoto/rgb/wmts?request=GetCapabilities (available from defaults layers as NL:PDOK aerial imagery Beeldmateriaal.nl 25cm (WMTS))
- Choose one of the EPSG:28992 layers
- JOSM will crash
What is the expected result?
JOSM shows the WMTS layers (maybe a bit misplaced because of projection mismatch, but no crashing)
What happens instead?
JOSM crashes
Please provide any additional information below. Attach a screenshot if possible.
Maybe it's also an idea to filter out the projections from the WMTS list to choose from to only the ones that match the current projection for each layer available and only show all projections for the layers which do not have a projection matching the current projection.
URL:http://josm.openstreetmap.de/svn/trunk Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b Last:Changed Date: 2017-07-31 01:02:55 +0200 (Mon, 31 Jul 2017) Build-Date:2017-07-31 01:53:17 Revision:12545 Relative:URL: ^/trunk Identification: JOSM/1.5 (12545 en) Windows 10 64-Bit OS Build number: Windows 10 Enterprise 1703 (15063) Memory Usage: 1071 MB / 10667 MB (840 MB allocated, but free) Java version: 1.8.0_131-b11, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM Screen: \Display0 1920x1080 Maximum Screen Size: 1920x1080 VM arguments: [-Djava.net.useSystemProxies=true] Plugins: + ejml (32680) + geojson (52) + geotools (33380) + jts (32699) + ods-bag (0.6.12) + opendataservices (0.6.12) + utilsplugin2 (33328) Last errors/warnings: - W: No url returned for: {0}, skipping - W: java.lang.IllegalArgumentException: No url returned - W: No url returned for: {0}, skipping - W: java.lang.IllegalArgumentException: No url returned - W: No url returned for: {0}, skipping - W: java.lang.IllegalArgumentException: No url returned - W: No url returned for: {0}, skipping - W: java.lang.IllegalArgumentException: No url returned - W: No url returned for: {0}, skipping - W: java.lang.IllegalArgumentException: No url returned === REPORTED CRASH DATA === BugReportExceptionHandler#handleException: No data collected. Warning issued by: BugReportExceptionHandler#handleException === STACK TRACE === Thread: AWT-EventQueue-0 (21) of main java.lang.NullPointerException at org.openstreetmap.josm.data.imagery.WMTSTileSource$Layer.access$400(WMTSTileSource.java:155) at org.openstreetmap.josm.data.imagery.WMTSTileSource.initProjection(WMTSTileSource.java:686) at org.openstreetmap.josm.gui.layer.WMTSLayer.projectionChanged(WMTSLayer.java:100) at org.openstreetmap.josm.Main.fireProjectionChanged(Main.java:1090) at org.openstreetmap.josm.Main.setProjection(Main.java:1068) at org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference.setProjection(ProjectionPreference.java:473) at org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference.ok(ProjectionPreference.java:426) at org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane$PluginDownloadAfterTask.run(PreferenceTabbedPane.java:92) at org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane.savePreferences(PreferenceTabbedPane.java:424) at org.openstreetmap.josm.gui.preferences.PreferenceDialog$OKAction.actionPerformed(PreferenceDialog.java:187) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.WaitDispatchSupport$2.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.awt.WaitDispatchSupport$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.WaitDispatchSupport.enter(Unknown Source) at java.awt.Dialog.show(Unknown Source) at java.awt.Component.show(Unknown Source) at java.awt.Component.setVisible(Unknown Source) at java.awt.Window.setVisible(Unknown Source) at java.awt.Dialog.setVisible(Unknown Source) at org.openstreetmap.josm.gui.preferences.PreferenceDialog.setVisible(PreferenceDialog.java:127) at org.openstreetmap.josm.actions.PreferencesAction.run(PreferencesAction.java:112) at org.openstreetmap.josm.actions.PreferencesAction.actionPerformed(PreferencesAction.java:101) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Attachments (0)
Change History (5)
comment:1 by , 7 years ago
Owner: | changed from | to
---|---|
Status: | new → needinfo |
comment:2 by , 7 years ago
Tested with version 12707 and there it's better as it doesn't crash, but just no tiles being loaded as it cannot find a URL.
In the console log I see:
2017-09-01 16:29:04.818 WARNING: No default layer selected, choosing first layer. 2017-09-01 16:29:08.342 INFO: Registered toolbar action fixaddresses/selectaddressesinmap overwritten: org.openstreetmap.josm.plugins.fixAddresses.gui.actions.SelectAddressesInMapAction gets org.openstreetmap.josm.plugins.fixAddresses.gui.actions.SelectAddressesInMapAction 2017-09-01 16:29:08.343 INFO: Registered toolbar action fixaddresses/guessaddressdata overwritten: org.openstreetmap.josm.plugins.fixAddresses.gui.actions.GuessAddressDataAction gets org.openstreetmap.josm.plugins.fixAddresses.gui.actions.GuessAddressDataAction 2017-09-01 16:29:08.349 INFO: Registered toolbar action fixaddresses/applyallguesses overwritten: org.openstreetmap.josm.plugins.fixAddresses.gui.actions.ApplyAllGuessesAction gets org.openstreetmap.josm.plugins.fixAddresses.gui.actions.ApplyAllGuessesAction 2017-09-01 16:29:08.350 INFO: Registered toolbar action fixaddresses/removeaddresstags overwritten: org.openstreetmap.josm.plugins.fixAddresses.gui.actions.RemoveAddressTagsAction gets org.openstreetmap.josm.plugins.fixAddresses.gui.actions.RemoveAddressTagsAction 2017-09-01 16:29:08.519 INFO: AbstractTileSourceLayer: estimated visible tiles: 54, estimated cache size: 216 2017-09-01 16:29:08.591 INFO: AbstractTileSourceLayer: estimated visible tiles: 54, estimated cache size: 216 2017-09-01 16:29:08.592 INFO: AbstractTileSourceLayer: estimated visible tiles: 54, estimated cache size: 216 2017-09-01 16:29:08.600 INFO: Allocate for tile source layer: 54 MB of memory. Available: 3,506 MB. 2017-09-01 16:29:08.602 WARNING: No url returned for: PDOK aerial imagery Beeldmateriaal.nl 25cm (WMTS):EPSG:3857, skipping 2017-09-01 16:29:08.604 WARNING: java.lang.IllegalArgumentException: No url returned
Strange thing is that it complains about the no url for EPSG:3857 while having selected the EPSG:28992. Shouldn't it find the url for the 28992 projection and show that?
Could be prevented when the dialog would hide the unsuitable layers as suggested in this ticket, so that users are less likely to choose a wrong projections and as a bonus having a list with less items making it easier to find the desired layer.
comment:3 by , 7 years ago
Keywords: | wmts projection added |
---|---|
Owner: | changed from | to
Status: | needinfo → new |
comment:4 by , 7 years ago
Milestone: | → 17.08 |
---|
Probably fixed in r12550, can you please check with latest?