Modify

Opened 4 months ago

Closed 4 months ago

Last modified 4 months ago

#14793 closed defect (fixed)

Error while adding WMTS layer from Albania

Reported by: anonymous Owned by: team
Priority: normal Milestone: 17.05
Component: Core imagery Version:
Keywords: template_report wmts Cc:

Description

What steps will reproduce the problem?

  1. Add http://geoportal.asig.gov.al:8000/wmts/1.0.0/WMTSCapabilities.xml as WMTS service
  2. Try to add it in the map
  3. Choose Urbane2015 layer
  4. Click on "Add layer"

What is the expected result?

View of Albania WMTS Orthophotos (http://geoportal.asig.gov.al/en/InfoandServices.aspx?lang=EN)

What happens instead?

Crash ("An unexpected error occured")

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2017-05-02 23:28:33 +0200 (Tue, 02 May 2017)
Revision:12039
Build-Date:2017-05-02 21:34:40
URL:http://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (12039 en) Windows 10 64-Bit
Memory Usage: 674 MB / 2030 MB (268 MB allocated, but free)
Java version: 9-ea+166, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: \Display0 2736x1824
Maximum Screen Size: 2736x1824
VM arguments: [--add-modules=ALL-DEFAULT,javafx.deploy, -Djava.security.manager, -Djava.security.policy=file:<java.home>\conf\security\javaws.policy, -DtrustProxy=true, -Djnlpx.home=<java.home>, -Djnlpx.origFilenameArg=%UserProfile%\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\56\1ee8cfb8-6618cd36, -Djnlpx.remove=false, -Djava.util.Arrays.useLegacyMergeSort=true, -Djnlp.application.href=https://josm.openstreetmap.de/download/josm.jnlp, -Djnlpx.jvm=<java.home>\bin\javaw.exe, --add-modules=ALL-DEFAULT, --add-exports=java.base/com.sun.net.ssl.internal.ssl=jdk.deploy, --add-exports=java.base/jdk.internal.misc=jdk.deploy, --add-exports=java.base/jdk.internal.util.jar=jdk.deploy, --add-exports=java.base/sun.net.www=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.file=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.http=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.http.ntlm=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.https=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.jar=jdk.deploy, --add-exports=java.base/sun.nio=jdk.deploy, --add-exports=java.base/sun.reflect.misc=jdk.deploy, --add-exports=java.base/sun.security.action=jdk.deploy, --add-exports=java.base/sun.security.pkcs=jdk.deploy, --add-exports=java.base/sun.security.provider=jdk.deploy, --add-exports=java.base/sun.security.provider.certpath=jdk.deploy, --add-exports=java.base/sun.security.rsa=jdk.deploy, --add-exports=java.base/sun.security.ssl=jdk.deploy, --add-exports=java.base/sun.security.timestamp=jdk.deploy, --add-exports=java.base/sun.security.util=jdk.deploy, --add-exports=java.base/sun.security.validator=jdk.deploy, --add-exports=java.base/sun.security.x509=jdk.deploy, --add-exports=java.base/sun.usagetracker=jdk.deploy, --add-exports=java.desktop/sun.awt=jdk.deploy, --add-exports=java.naming/com.sun.jndi.toolkit.url=jdk.deploy, --add-exports=java.base/jdk.internal.misc=jdk.javaws, --add-exports=java.desktop/com.sun.media.sound=jdk.javaws, --add-exports=java.desktop/sun.awt=jdk.javaws, --add-exports=java.desktop/sun.awt.image=jdk.javaws, --add-exports=java.base/jdk.internal.misc=jdk.plugin, --add-exports=java.base/sun.net=jdk.plugin, --add-exports=java.base/sun.net.www=jdk.plugin, --add-exports=java.base/sun.net.www.protocol.jar=jdk.plugin, --add-exports=java.base/sun.security.action=jdk.plugin, --add-exports=java.base/sun.security.util=jdk.plugin, --add-exports=java.desktop/com.sun.media.sound=jdk.plugin, --add-exports=java.desktop/java.awt.peer=jdk.plugin, --add-exports=java.desktop/sun.applet=jdk.plugin, --add-exports=java.desktop/sun.applet.resources=jdk.plugin, --add-exports=java.desktop/sun.awt=jdk.plugin, --add-exports=java.desktop/sun.awt.windows=jdk.plugin, --add-exports=java.desktop/sun.swing=jdk.plugin, --add-exports=jdk.jsobject/jdk.internal.netscape.javascript.spi=jdk.plugin, --add-exports=java.desktop/sun.awt.image=jdk.plugin, -Djdk.module.main=jdk.plugin]
Dataset consistency test: No problems found

Plugins:
+ buildings_tools (33004)
+ turnrestrictions (33088)

Tagging presets:
+ https://josm.openstreetmap.de/josmfile?page=Presets/BENELUX&zip=1

Last errors/warnings:
- E: org.openstreetmap.josm.io.OsmApiException: ResponseCode=400, Error Header=<The maximum bbox size is 0.25, and your request was too large. Either request a smaller area, or use planet.osm>
- E: Bad Request - <html>The OSM server 'api.openstreetmap.org' reported a bad request.<br><br>The area you tried to download is too big or your request was too large.<br>Either request a smaller area or use an export file provided by the OSM community.</html>
- W: java.lang.reflect.InaccessibleObjectException: Unable to make field private static java.util.ResourceBundle java.awt.Toolkit.resources accessible: module java.desktop does not "opens java.awt" to unnamed module @32773d89
- W: java.lang.reflect.InaccessibleObjectException: Unable to make field private static java.util.ResourceBundle java.awt.Toolkit.resources accessible: module java.desktop does not "opens java.awt" to unnamed module @32773d89
- W: No default layer selected, choosing first layer.
- E: Handled by bug report queue: java.lang.NullPointerException
- W: java.lang.reflect.InaccessibleObjectException: Unable to make field private static java.util.ResourceBundle java.awt.Toolkit.resources accessible: module java.desktop does not "opens java.awt" to unnamed module @32773d89
- W: java.lang.reflect.InaccessibleObjectException: Unable to make field private static java.util.ResourceBundle java.awt.Toolkit.resources accessible: module java.desktop does not "opens java.awt" to unnamed module @32773d89
- W: No default layer selected, choosing first layer.
- 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-2 (57) of javawsApplicationThreadGroup
java.lang.NullPointerException
	at org.openstreetmap.josm.data.imagery.WMTSTileSource.getTileSize(WMTSTileSource.java:682)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.estimateTileCacheSize(AbstractTileSourceLayer.java:598)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.initTileSource(AbstractTileSourceLayer.java:284)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.initializeIfRequired(AbstractTileSourceLayer.java:562)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.attachToMapView(AbstractTileSourceLayer.java:538)
	at org.openstreetmap.josm.gui.MapView.layerAdded(MapView.java:339)
	at org.openstreetmap.josm.gui.layer.LayerManager.fireLayerAdded(LayerManager.java:458)
	at org.openstreetmap.josm.gui.layer.LayerManager.realAddLayer(LayerManager.java:233)
	at org.openstreetmap.josm.gui.layer.MainLayerManager.realAddLayer(MainLayerManager.java:251)
	at org.openstreetmap.josm.gui.layer.LayerManager.lambda$addLayer$0(LayerManager.java:217)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:138)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:217)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:206)
	at org.openstreetmap.josm.actions.AddImageryLayerAction.actionPerformed(AddImageryLayerAction.java:140)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at java.desktop/javax.swing.AbstractButton.doClick(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at java.desktop/javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
	at java.desktop/java.awt.Component.processMouseEvent(Unknown Source)
	at java.desktop/javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.Component.processEvent(Unknown Source)
	at java.desktop/java.awt.Container.processEvent(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.Component.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue.access$500(Unknown Source)
	at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(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(Native Method)
	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)

Attachments (0)

Change History (6)

comment:1 Changed 4 months ago by bastiK

There are errors in the capabilities document: It should be

<ows:SupportedCRS>urn:ogc:def:crs:epsg::3127</ows:SupportedCRS>

and not

<ows:SupportedCRS>urn:ogc:def:crs:epsg:3127</ows:SupportedCRS>

The specification is a bit fuzzy about it, so maybe we can add a workaround. In any case, JOSM should not throw an exception, but but display a proper error message.

comment:2 Changed 4 months ago by Don-vip

Component: CoreCore imagery
Keywords: wmts added
Milestone: 17.05

comment:3 Changed 4 months ago by Don-vip

It seems to be compliant as version is explicitly optional:

7.2 URNs for single objects
To identify the definition of a single object, the URN shall have the form:
urn:ogc:def:objectType:authority:version:code
...
The optional ―version part shall be the version of the authority or code for the referenced definition.

comment:4 Changed 4 months ago by Don-vip

Resolution: fixed
Status: newclosed

In 12147/josm:

fix #14793 - fix WMTS CRS identification as per OGC specification (case-insensitive & version optional)

comment:5 in reply to:  3 Changed 4 months ago by bastiK

Replying to Don-vip:

It seems to be compliant as version is explicitly optional:

7.2 URNs for single objects
To identify the definition of a single object, the URN shall have the form:
urn:ogc:def:objectType:authority:version:code
...
The optional ―version part shall be the version of the authority or code for the referenced definition.

I think by optional, they mean you can use an empty string as version, but keep the ":" signs (urn:ogc:def:crs:epsg::3127). At least that is how it is used most of the time. But they don't say it clearly and if we can handle both cases it is even better.

comment:6 Changed 4 months ago by Don-vip

Ticket #14824 has been marked as a duplicate of this ticket.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.