[antlr-interest] "Illegal target of jump or branch" in method: specialStateTransition
Philippe Frankson
Philippe.Frankson at Frsglobal.com
Tue Mar 13 03:38:50 PDT 2012
Hi all,
I use teamcity to launch automatically a bunch of tests on our
application.
However, one test is failing. Error message: "Illegal target of jump or
branch".
One reason of the problem could be that the size of the function is too
big.
However that function is generated automatically by ANTLR 3.4.
The function 'specialStateTransition' in the inner class DFA13 is
indeed quite long (about 3000 lines).
In previous versions of ANTLR that function didn't exist so I never had
that kind of error.
You can see the stack trace here below for detail.
Any idea how to solve this ?
Would it be possible to split that function to avoid such problem ?
Thank you for any feedback
Philippe
Stacktraces :
(new)
dbtest.com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaPa
rserTest.testFormulaSyntax
java.lang.VerifyError: (class:
com/frsglobal/riskpro/model/reportbuilder/formulaparser/FormulaLexer$DFA
13, method: specialStateTransition signature:
(ILorg/antlr/runtime/IntStream;)I) Illegal target of jump or branch
at
com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaLexer.(Fo
rmulaLexer.java:3210)
at
com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaLexer.(Fo
rmulaLexer.java:128)
at
com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaParserMan
ager.(FormulaParserManager.java:26)
at
dbtest.com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaPa
rserTest.checkSyntax(FormulaParserTest.java:58)
at
dbtest.com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaPa
rserTest.testFormulaSyntax(FormulaParserTest.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at
com.frsglobal.riskpro.common.FTestCase.runTest(FTestCase.java:171)
at junit.framework.TestCase.runBare(TestCase.java:134)
at
org.apache.tools.ant.taskdefs.optional.junit.TestResultInterceptor$1.pro
tect(TestResultInterceptor.java:160)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at
org.apache.tools.ant.taskdefs.optional.junit.TestResultInterceptor.run(T
estResultInterceptor.java:190)
at junit.framework.TestCase.run(TestCase.java:124)
at
com.frsglobal.riskpro.common.FTestCase.run(FTestCase.java:148)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.jav
a:79)
at
junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTe
stRunner.java:420)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUni
tTestRunner.java:911)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitT
estRunner.java:743)
------- Stdout: -------
[ main][ WARN] (10:48:52.839)
[ main][ WARN] (10:48:52.839) PID:20620 ::
FormulaParserTest.testFormulaSyntax
[ main][ WARN] (10:48:52.855) RAM Information: maximum
742MB - total 337MB - free 141MB
[ main][ WARN] (10:48:52.855)
[ main][ INFO] (10:48:52.855)
[ main][ INFO] (10:48:52.855) ***** Checking Hibernate
Settings [Equals] *****
[ main][ INFO] (10:48:52.855)
[ main][ INFO] (10:48:52.855) DbTestCase.setUp() done!
dbtest.com.frsglobal.riskpro.model.reportbuilder.CompileTest.testCompile
Applications
java.lang.VerifyError: (class:
com/frsglobal/riskpro/model/reportbuilder/formulaparser/FormulaLexer$DFA
13, method: specialStateTransition signature:
(ILorg/antlr/runtime/IntStream;)I) Illegal target of jump or branch
at
com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaLexer.(Fo
rmulaLexer.java:3210)
at
com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaLexer.(Fo
rmulaLexer.java:128)
at
com.frsglobal.riskpro.model.reportbuilder.formulaparser.FormulaParserMan
ager.(FormulaParserManager.java:26)
at
com.frsglobal.riskpro.model.reportbuilder.generator.RBReportGenerator.ha
sBrokenFormulae(RBReportGenerator.java:149)
at
com.frsglobal.riskpro.model.reportbuilder.generator.RBReportGenerator.ge
nerate(RBReportGenerator.java:84)
at
com.frsglobal.riskpro.model.reportbuilder.RBReportFile.generate(RBReport
File.java:1696)
at
com.frsglobal.riskpro.model.reportbuilder.RBApplication.generate(RBAppli
cation.java:1353)
at
dbtest.com.frsglobal.riskpro.model.reportbuilder.CompileTest.compileAppl
ication(CompileTest.java:31)
at
dbtest.com.frsglobal.riskpro.model.reportbuilder.CompileTest.testCompile
Applications(CompileTest.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at
com.frsglobal.riskpro.common.FTestCase.runTest(FTestCase.java:171)
at junit.framework.TestCase.runBare(TestCase.java:134)
at
org.apache.tools.ant.taskdefs.optional.junit.TestResultInterceptor$1.pro
tect(TestResultInterceptor.java:160)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at
org.apache.tools.ant.taskdefs.optional.junit.TestResultInterceptor.run(T
estResultInterceptor.java:190)
at junit.framework.TestCase.run(TestCase.java:124)
at
com.frsglobal.riskpro.common.FTestCase.run(FTestCase.java:148)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.jav
a:79)
at
junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTe
stRunner.java:420)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUni
tTestRunner.java:911)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitT
estRunner.java:743)
More information about the antlr-interest
mailing list