Eclipse compiler used commons.compiler causes "Illegal type in constant pool" with enums ----------------------------------------------------------------------------------------
Key: SLING-1809 URL: https://issues.apache.org/jira/browse/SLING-1809 Project: Sling Issue Type: Bug Components: Commons Affects Versions: Commons Compiler 2.0.0 Reporter: Bertrand Delacretaz According to [0] the eclipse compiler can't handle enums in certain environments. The trunk org.apache.sling.commons.compiler bundle embeds (eclipse-jdt) core-3.3.0-v_771.jar which exposes this issue. According to [0] the issue should be fixed in v3.5.2, but the central Maven repository does not provide a more recent version than the one we currently use. To reproduce the problem, install the compiler and java scripting bundle and create a scripted java servlet that uses enums (example below), at runtime this causes: java.lang.VerifyError: (class: enumtest/EnumTest, method: valueOf signature: (Ljava/lang/String;)Lenumtest/EnumTest;) Illegal type in constant pool [0] https://bugs.eclipse.org/bugs/show_bug.cgi?id=291985 Here's the example servlet, store in /apps/JavaScriptingTest2/JavaScriptingTest2.java and use "JavaScriptingTest2" resource type: package apps.JavaScriptingTest2; import javax.servlet.http.*; import java.io.IOException; public class JavaScriptingTest2 extends HttpServlet { static enum EnumTest { FOO, BAR }; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.getWriter().write("FOO=" + EnumTest.FOO); } } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.