[
http://jira.codehaus.org/browse/JANINO-133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=183303#action_183303 ]
Matt Fowles commented on JANINO-133:
------------------------------------
The problem is that the classes you are generating have too many constants (over 65536). You will see a similar behavior if your try to compiler the files with javac (or eclipse).
I definitely think it is a bug that there isn't a better error message (which I will try and fix shortly), but the core problem being able to handle >65536 constants cannot be fixed in Janino, it is a JVM limitation.
In the compiler at StreamBase we generate classes to share constants explicitly, so multiple files can share the same constants and we can automatically split to a new class when the last one gets full.
> Janino failed compiling with ClassCastException when the source code's size is too large
> ----------------------------------------------------------------------------------------
>
> Key: JANINO-133
> URL:
http://jira.codehaus.org/browse/JANINO-133> Project: Janino
> Issue Type: Bug
> Affects Versions: 2.5.15
> Reporter: sherry xu
> Assignee: Arno Unkrig
> Fix For: 2.5.15
>
> Attachments: Source.zip
>
>
> The janino engine failed compiling a java class whose size was 9256 kb (about 140000 lines). A classCastException was thrown as shown in the stacktrace below. Similar errors were received when the source code was downsized to about 95000 lines. The java file compiled with success when it was shrunk to below 60000 lines.
> Caused by: java.lang.ClassCastException: org.codehaus.janino.util.ClassFile$ConstantUtf8Info
> at org.codehaus.janino.CodeContext.determineArgumentsSize(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.CodeContext.flowAnalysis(CodeContext.java)
> at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
> at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java)
> at org.codehaus.janino.UnitCompiler.compileDeclaredMethods(UnitCompiler.java)
> at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
> at org.codehaus.janino.UnitCompiler.compile2(UnitCompiler.java)
> at org.codehaus.janino.UnitCompiler$3.visitPackageMemberClassDeclaration(UnitCompiler.java)
> at org.codehaus.janino.Java$PackageMemberClassDeclaration.accept(Java.java)
> at org.codehaus.janino.UnitCompiler.compile(UnitCompiler.java)
> at org.codehaus.janino.UnitCompiler.compileUnit(UnitCompiler.java)
> at org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java)
> at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java)
> at org.codehaus.janino.Cookable.cook(Cookable.java)
> at org.codehaus.janino.Cookable.cook(Cookable.java)
> at com.adminserver.utl.engine.janino.JaninoCompilerHelperUtl.compileClass(JaninoCompilerHelperUtl.java:87)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email