« Return to Thread: StackOverflow

StackOverflow

by Bradley Longstreth :: Rate this Message:

Reply to Author | View in Thread

Some parts of this message have been removed. Learn more about Nabble's security policy.
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,

Bradley
 
 
java.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