You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Stefan Guggisberg (JIRA)" <ji...@apache.org> on 2010/12/01 17:17:11 UTC
[jira] Commented: (SLING-1809) Eclipse compiler used in
commons.compiler causes "Illegal type in constant pool" with enums
[ https://issues.apache.org/jira/browse/SLING-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12965733#action_12965733 ]
Stefan Guggisberg commented on SLING-1809:
------------------------------------------
the target version is never explicitly set, i.e. it is not related to or specific to target "jsr14".
according to bertrand the issue is easily reproducible.
> 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.