9.9 -> 9.9.2: java.lang.NoClassDefFoundError: org/objectweb/asm/Type

Issue #419 resolved
Jérôme LELEU created an issue

I’m the leader of pac4j (https://github.com/pac4j/pac4j). We use the nimbus-jose-jwt dependency for JWT support.

We are at version 9.9. I try to upgrade to v9.9.2 but I have an issue: java.lang.NoClassDefFoundError: org/objectweb/asm/Type

Example:

import com.nimbusds.jwt.JWTClaimsSet;
import com.nimbusds.jwt.PlainJWT;

import java.io.Serializable;

public class Main {

    public static void main(String... args) {
        JWTClaimsSet.Builder set = new JWTClaimsSet.Builder();
        set.claim("t", new Test());
        new PlainJWT(set.build()).serialize();
    }

    private static class Test implements Serializable {}
}

Full stack trace:

Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type
at com.nimbusds.jose.shaded.asm.BeansAccessBuilder.<clinit>(BeansAccessBuilder.java:42)
at com.nimbusds.jose.shaded.asm.BeansAccess.get(BeansAccess.java:118)
at com.nimbusds.jose.shaded.json.reader.BeansWriterASM.writeJSONString(BeansWriterASM.java:17)
at com.nimbusds.jose.shaded.json.JSONValue.writeJSONString(JSONValue.java:599)
at com.nimbusds.jose.shaded.json.reader.JsonWriter.writeJSONKV(JsonWriter.java:392)
at com.nimbusds.jose.shaded.json.reader.JsonWriter$7.writeJSONString(JsonWriter.java:145)
at com.nimbusds.jose.shaded.json.reader.JsonWriter$7.writeJSONString(JsonWriter.java:128)
at com.nimbusds.jose.shaded.json.JSONObject.writeJSON(JSONObject.java:178)
at com.nimbusds.jose.shaded.json.JSONObject.toJSONString(JSONObject.java:66)
at com.nimbusds.jose.shaded.json.JSONObject.toJSONString(JSONObject.java:50)
at com.nimbusds.jose.util.JSONObjectUtils.toJSONString(JSONObjectUtils.java:417)
at com.nimbusds.jose.Payload.toString(Payload.java:388)
at com.nimbusds.jose.Payload.toBytes(Payload.java:420)
at com.nimbusds.jose.Payload.toBase64URL(Payload.java:437)
at com.nimbusds.jose.PlainObject.serialize(PlainObject.java:149)
at Main.main(Main.java:11)
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 16 more

The issue appears when we have a class implementing Serializable.

Comments (3)

  1. Yavor Vasilev

    Ouch 🙂 I can confirm that.

    @Tobias Stadler Do you reckon after PR77 something additional needs shading?

  2. Yavor Vasilev

    Yeah, there one further dep that has not been shaded: org.ow2.asm:asm:jar:9.1

    [INFO] +- net.minidev:json-smart:jar:2.4.7:compile
    [INFO] |  \- net.minidev:accessors-smart:jar:2.4.7:compile
    [INFO] |     \- org.ow2.asm:asm:jar:9.1:compile
    

  3. Log in to comment