ulysses - 2012-11-14

Hello,

I'm trying to use cssparser in my project. Unfortunately when using Java 7 I
get the following exception:

Error Message

Invalid method Code length 66878 in class file
com/steadystate/css/parser/SACParserCSS21TokenManager

Stacktrace

java.lang.ClassFormatError: Invalid method Code length 66878 in class file
com/steadystate/css/parser/SACParserCSS21TokenManager

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:791)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)

at java.net.URLClassLoader.access$100(URLClassLoader.java:71)

at java.net.URLClassLoader$1.run(URLClassLoader.java:361)

at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

at java.lang.ClassLoader.loadClass(ClassLoader.java:423)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

at java.lang.ClassLoader.loadClass(ClassLoader.java:356)

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)

at java.lang.Class.getConstructor0(Class.java:2714)

at java.lang.Class.newInstance0(Class.java:343)

at java.lang.Class.newInstance(Class.java:325)

The class has a very long switch statement (700+ case-es).

Due to jvm specification a class may not exceed 64KB when loaded therefore
the classloader fails. It would be good if the class could be split into
smaller pieces of code that do not break the jvm limitations.

Regards