« Return to Thread: StackOverflow
Hello All:
I have a situation whereby we are generating dynamic classes on the fly using SimpleCompiler. Inside the class, we are reading, what could be very large expressions...Example:
class Foo {static Object getExpressionValue() {
SomeFunc(value, value, value, value) + SumFunction(value, value, value, value) + ....}}
This is a simple class demonstrating that I am generating a dynamic infix expression on the fly. As some point, when the expression gets large, I receive a stack overflow from the SimpleCompiler. In fact, I have seen where it will be okay...then on the next code generation it will fail. Now, when I say large, I mean about 180+ of the pattern SomeFunc(value,value,value,value))....Anyway, I have attached a partial stack trace to show the problem. Please let me know if there are any know issues or if I simply just need to break the expression up into smaller pieces. Also, I am not sure if the has to do with the 32k byte code generation. If so, I assume I will have to do something different with the dynamic expression generation...Any suggestions would be appreciated.
Best Regards,
Bradleyjava.lang.StackOverflowError
at org.codehaus.janino.Parser.peekOperator(Parser.java)
at org.codehaus.janino.Parser.parseUnaryExpression(Parser.java)
at org.codehaus.janino.Parser.parseMultiplicativeExpression(Parser.java)
at org.codehaus.janino.Parser.parseAdditiveExpression(Parser.java)
at org.codehaus.janino.Parser.parseShiftExpression(Parser.java)
at org.codehaus.janino.Parser.parseRelationalExpression(Parser.java)
at org.codehaus.janino.Parser.parseEqualityExpression(Parser.java)
at org.codehaus.janino.Parser.parseAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseExclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseInclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalExpression(Parser.java)
at org.codehaus.janino.Parser.parseAssignmentExpression(Parser.java)
at org.codehaus.janino.Parser.parseExpression(Parser.java)
at org.codehaus.janino.Parser.parseArgumentList(Parser.java)
at org.codehaus.janino.Parser.parseArguments(Parser.java)
at org.codehaus.janino.Parser.parsePrimary(Parser.java)
at org.codehaus.janino.Parser.parseUnaryExpression(Parser.java)
at org.codehaus.janino.Parser.parseMultiplicativeExpression(Parser.java)
at org.codehaus.janino.Parser.parseAdditiveExpression(Parser.java)
at org.codehaus.janino.Parser.parseShiftExpression(Parser.java)
at org.codehaus.janino.Parser.parseRelationalExpression(Parser.java)
at org.codehaus.janino.Parser.parseEqualityExpression(Parser.java)
at org.codehaus.janino.Parser.parseAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseExclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseInclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalExpression(Parser.java)
at org.codehaus.janino.Parser.parseAssignmentExpression(Parser.java)
at org.codehaus.janino.Parser.parseExpression(Parser.java)
at org.codehaus.janino.Parser.parseArgumentList(Parser.java)
at org.codehaus.janino.Parser.parseArguments(Parser.java)
at org.codehaus.janino.Parser.parsePrimary(Parser.java)
at org.codehaus.janino.Parser.parseUnaryExpression(Parser.java)
at org.codehaus.janino.Parser.parseMultiplicativeExpression(Parser.java)
at org.codehaus.janino.Parser.parseAdditiveExpression(Parser.java)
at org.codehaus.janino.Parser.parseShiftExpression(Parser.java)
at org.codehaus.janino.Parser.parseRelationalExpression(Parser.java)
at org.codehaus.janino.Parser.parseEqualityExpression(Parser.java)
at org.codehaus.janino.Parser.parseAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseExclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseInclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalExpression(Parser.java)
at org.codehaus.janino.Parser.parseAssignmentExpression(Parser.java)
at org.codehaus.janino.Parser.parseExpression(Parser.java)
at org.codehaus.janino.Parser.parseArgumentList(Parser.java)
at org.codehaus.janino.Parser.parseArguments(Parser.java)
at org.codehaus.janino.Parser.parsePrimary(Parser.java)
at org.codehaus.janino.Parser.parseUnaryExpression(Parser.java)
at org.codehaus.janino.Parser.parseMultiplicativeExpression(Parser.java)
at org.codehaus.janino.Parser.parseAdditiveExpression(Parser.java)
at org.codehaus.janino.Parser.parseShiftExpression(Parser.java)
at org.codehaus.janino.Parser.parseRelationalExpression(Parser.java)
at org.codehaus.janino.Parser.parseEqualityExpression(Parser.java)
at org.codehaus.janino.Parser.parseAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseExclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseInclusiveOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalAndExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalOrExpression(Parser.java)
at org.codehaus.janino.Parser.parseConditionalExpression(Parser.java)
at org.codehaus.janino.Parser.parseAssignmentExpression(Parser.java)
at org.codehaus.janino.Parser.parseExpression(Parser.java)
at org.codehaus.janino.Parser.parseArgumentList(Parser.java)
at org.codehaus.janino.Parser.parseArguments(Parser.java)
at org.codehaus.janino.Parser.parsePrimary(Parser.java)
« Return to Thread: StackOverflow
| Free embeddable forum powered by Nabble | Forum Help |