[ https://issues.apache.org/jira/browse/SLING-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12915326#action_12915326 ]
Bertrand Delacretaz commented on SLING-1809: -------------------------------------------- The tycho project seems to provide a more recent version of the compiler: <dependency> <groupId>org.sonatype.tycho</groupId> <artifactId>org.eclipse.jdt.core</artifactId> <version>3.6.0.v_A58</version> </dependency> > Eclipse compiler used in 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.