Opened 3 years ago

Last modified 3 years ago

#22990 closed defect

jakarta.json.JsonException: Provider org.glassfish.json.JsonProviderImpl could not be instantiated: java.lang.ClassCastException: class org.glassfish.json.JsonProviderImpl cannot be cast to class jakarta.json.spi.JsonProvider (org.glassfish.json.JsonProviderImpl and jakarta.json.spi.JsonProvider are in unnamed module of loader 'app') — at Initial Version

Reported by: sebastic Owned by: team
Priority: normal Milestone: 23.07
Component: Core Version: tested
Keywords: Cc:

Description

The Debian package throws and exception at startup after the update to r18746:

Revision:18746
Is-Local-Build:false
Build-Date:2023-06-06 03:52:38
Debian-Release:0.0.svn18746+dfsg-1~exp1
Build-Name:Debian

Identification: JOSM/1.5 (18746 Debian en) Linux Debian GNU/Linux 12 (bookworm)
Memory Usage: 160 MB / 3918 MB (64 MB allocated, but free)
Java version: 17.0.6+10-Debian-1, Debian, OpenJDK 64-Bit Server VM
Look and Feel: javax.swing.plaf.metal.MetalLookAndFeel
Screen: :0.0 1920×1200 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1200
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: KDE
Java package: openjdk-17-jre:amd64-17.0.6+10-1
Java ATK Wrapper package: libatk-wrapper-java:all-0.40.0-3
libcommons-compress-java: libcommons-compress-java:all-1.22-1
libcommons-logging-java: libcommons-logging-java:all-1.2-3
fonts-noto: fonts-noto:all-20201225-1
liboauth-signpost-java: liboauth-signpost-java:all-1.2.1.2-3
VM arguments: [--module-path=/usr/share/openjfx/lib, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, -Djosm.restart=true, -Djava.net.useSystemProxies=true, --add-exports=java.<user.name>e/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]

Plugins:
+ AddrInterpolation
+ DirectUpload
+ FixAddresses
+ HouseNumberTaggingTool
+ OpeningHoursEditor
+ RoadSigns
+ SimplifyArea
+ apache-commons
+ buildings_tools
+ editgpx
+ ejml
+ geotools
+ jackson
+ jaxb (35952)
+ jts
+ opendata
+ pbf
+ poly
+ reverter
+ terracer
+ todo
+ turnlanes
+ turnrestrictions
+ utilsplugin2
+ waydownloader
+ wikipedia

Tagging presets:
+ /usr/share/josm/data/defaultpresets.xml

Map paint styles:
- /usr/share/josm/styles/standard/potlatch2.mapcss
- <josm.pref>/plugins/ods-bag/Ods-bag-style-0.6.8.mapcss

Last errors/warnings:
- 00016.150 E: Handled by bug report queue: jakarta.json.JsonException: Provider org.glassfish.json.JsonProviderImpl could not be instantiated: java.lang.ClassCastException: class org.glassfish.json.JsonProviderImpl cannot be cast to class jakarta.json.spi.JsonProvider (org.glassfish.json.JsonProviderImpl and jakarta.json.spi.JsonProvider are in unnamed module of loader 'app'). Cause: java.lang.ClassCastException: class org.glassfish.json.JsonProviderImpl cannot be cast to class jakarta.json.spi.JsonProvider (org.glassfish.json.JsonProviderImpl and jakarta.json.spi.JsonProvider are in unnamed module of loader 'app')



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: main (1)
jakarta.json.JsonException: Provider org.glassfish.json.JsonProviderImpl could not be instantiated: java.lang.ClassCastException: class org.glassfish.json.JsonProviderImpl cannot be cast to class jakarta.json.spi.JsonProvider (org.glassfish.json.JsonProviderImpl and jakarta.json.spi.JsonProvider are in unnamed module of loader 'app')
        at jakarta.json.spi.JsonProvider.provider(JsonProvider.java:89)
        at jakarta.json.Json.createParser(Json.java:85)
        at org.openstreetmap.josm.tools.Territories.initializeExternalData(Territories.java:196)
        at org.openstreetmap.josm.tools.Territories.initializeExternalData(Territories.java:190)
        at org.openstreetmap.josm.tools.Territories.initialize(Territories.java:124)
        at org.openstreetmap.josm.gui.MainInitialization.lambda$beforeInitializationTasks$4(MainInitialization.java:85)
        at org.openstreetmap.josm.spi.lifecycle.InitializationTask.call(InitializationTask.java:33)
        at org.openstreetmap.josm.spi.lifecycle.Lifecycle.runInitializationTasks(Lifecycle.java:103)
        at org.openstreetmap.josm.spi.lifecycle.Lifecycle.initialize(Lifecycle.java:71)
        at org.openstreetmap.josm.gui.MainApplication.mainJOSM(MainApplication.java:959)
        at org.openstreetmap.josm.gui.MainApplication$3.processArguments(MainApplication.java:277)
        at org.openstreetmap.josm.gui.MainApplication.main(MainApplication.java:742)
Caused by: java.lang.ClassCastException: class org.glassfish.json.JsonProviderImpl cannot be cast to class jakarta.json.spi.JsonProvider (org.glassfish.json.JsonProviderImpl and jakarta.json.spi.JsonProvider are in unnamed module of loader 'app')
        at jakarta.json.spi.JsonProvider.provider(JsonProvider.java:84)
        ... 11 more

Stack Overflow suggests this is be caused by javax.json being on the classpath along with jakarta.json. GeoJSONImporter.java needs to be updated before javax.json can be removed from the classpath:

$ grep javax.json src/org/openstreetmap/ -r
src/org/openstreetmap/josm/gui/io/importexport/GeoJSONImporter.java:import javax.json.JsonException;

Change History (0)

Note: See TracTickets for help on using tickets.