1

While using IBM I am getting following error. It is working fine with Oracle. I have my class compiled with Oracle and not IBM.

I an getting this error while calling a class through reflection. Running it through main method works fine.

Class aClass=ObfuscationUtility.class;
        Method[] methods = aClass.getDeclaredMethods();
        for (Method method : methods) {
            if (method.getName().equals(deobfuscated_method)) {
                method.setAccessible(true);
                try {
                    decryptedText = (String) method.invoke(aClass, encryptedText);

....

Any suggestions what mistake I may be doing.

Exception in thread "main" java.lang.VerifyError: JVMVRFY010 multiple jsrs use single return; class=com/ObfuscationUtility, method=<clinit>()V, pc=65
Exception Details:
Location:
com/ObfuscationUtility.<clinit>()V @65: JBjsr
Reason:
Error exists in the bytecode.
Exception Handler Table:
bci [322, 333] => handler: 1146
bci [1147, 1157] => handler: 692
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClassInternal(ClassLoader.java:396)
at java.lang.ClassLoader.defineClass(ClassLoader.java:357)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:154)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:730)
at java.net.URLClassLoader.access$400(URLClassLoader.java:96)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1187)
at java.security.AccessController.doPrivileged(AccessController.java:774)
at java.net.URLClassLoader.findClass(URLClassLoader.java:605)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:942)
at java.lang.ClassLoader.loadClass(ClassLoader.java:887)
at java.lang.ClassLoader.loadClass(ClassLoader.java:870)
1

1 Answer 1

0

Internally, the ASM library is used to perform class bytecode manipulation. One requirement of Java 7 is that it contains a StackMap table to assist with class verification. The version of ASM in use contains a defect that causes the modified class to have an incorrect StackMap table, and this causes a java.lang.VerifyError to occur when loading the class. This can happen when methods in the class make use of multi-dimensional arrays.

Problem conclusion The ASM library has been updated with a fix that correctly generates the StackMap for methods that make use of multi-dimensional arrays.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.