takashi-ishio / selogger

(Near-)omniscient debugging/tracing/logging tool for Java
Other
35 stars 8 forks source link

Failed to weave JavaSE-15 classes #4

Closed takashi-ishio closed 3 years ago

takashi-ishio commented 3 years ago

Weaving failed for a very simple class:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello");
    }

}

Stack Trace:

Weave: file:/C:/Users/ishio/eclipse-workspace/HelloWorld/bin//Main
Failed to weave Main in file:/C:/Users/ishio/eclipse-workspace/HelloWorld/bin/
java.lang.IllegalArgumentException
    at selogger.org.objectweb.asm.ClassReader.<init>(ClassReader.java:160)
    at selogger.org.objectweb.asm.ClassReader.<init>(ClassReader.java:143)
    at selogger.weaver.ClassTransformer.<init>(ClassTransformer.java:30)
    at selogger.weaver.Weaver.weave(Weaver.java:155)
    at selogger.weaver.RuntimeWeaver.transform(RuntimeWeaver.java:201)
    at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:246)
    at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:563)
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:825)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:723)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:646)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:468)
    at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:780)
    at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:675)
takashi-ishio commented 3 years ago

The problem is simply because ASM 6.0 did not support a new version of class files. Updated to ASM 9.0.