Hi, I am trying to use JRebel on cocoon+lenya+tomcat application. I have configured JRebel to replace classes generated by eclipse:
<classpath>
<dir name="C:/eclipse/git-mirrors/channel/ncno/build/eclipseclasses">
</classpath>
When JRebel replaces classes, cocoon doesn't like it and fails with strange error (see below).
I am using cocoon 2.1.9. It seems like apache bcel verifier doesn't like the replaced class. Do you have any idea what could be wrong and how to make it work?
Thanks
Error:
Caused by: org.apache.avalon.framework.configuration.ConfigurationException: Cannot initialize JavaInterpreter
at org.apache.cocoon.components.flow.java.JavaInterpreter.initialize(JavaInterpreter.java:103)
at org.apache.cocoon.components.flow.java.JavaInterpreter.callFunction(JavaInterpreter.java:123)
at org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:138)
... 175 more
Caused by: org.apache.bcel.verifier.exc.StructuralCodeConstraintException: Instruction INVOKESTATIC constraint violated: Class 'no.netcom.channel.common.User' is referenced, but cannot be loaded and resolved: 'VERIFIED_REJECTED
Number of LocalVariableTable attributes of Code attribute '' (method 'static void <clinit>()') exceeds number of local variable slots '0' ('There may be no more than one LocalVariableTable attribute per local variable in the Code attribute.').
'.
InstructionHandle: 18: invokestatic[184](3) 6
Execution Frame:
Local Variables:
0: no.netcom.channel.bansearch.BanSearchFlow
1: org.apache.avalon.framework.logger.Logger
2: <unknown object>
3: <unknown object>
4: <unknown object>
5: <unknown object>
6: <unknown object>
7: <unknown object>
OperandStack:
Slots used: 2 MaxStack: 3.
org.apache.cocoon.environment.Request (Size: 1)
no.netcom.channel.bansearch.BanSearchFlow (Size: 1)
Execution flow:
0: aload_0 [InstructionContext]
1: invokevirtual 2 [InstructionContext]
4: astore_1 [InstructionContext]
5: aload_1 [InstructionContext]
6: ldc 3 [InstructionContext]
8: invokeinterface 4 [InstructionContext]
13: aload_0 [InstructionContext]
14: aload_0 [InstructionContext]
15: invokevirtual 5 [InstructionContext]
18: invokestatic 6 [InstructionContext]
at org.apache.bcel.verifier.structurals.InstConstraintVisitor.constraintViolated(InstConstraintVisitor.java:148)
at org.apache.bcel.verifier.structurals.InstConstraintVisitor.visitLoadClass(InstConstraintVisitor.java:265)
at org.apache.bcel.generic.INVOKESTATIC.accept(INVOKESTATIC.java:104)
at org.apache.bcel.generic.InstructionHandle.accept(InstructionHandle.java:282)
at org.apache.bcel.verifier.structurals.ControlFlowGraph$InstructionContextImpl.execute(ControlFlowGraph.java:229)
at org.apache.cocoon.components.flow.java.ContinuationClassLoader.analyse(ContinuationClassLoader.java:234)
at org.apache.cocoon.components.flow.java.ContinuationClassLoader.transform(ContinuationClassLoader.java:146)
at org.apache.cocoon.components.flow.java.ContinuationClassLoader.loadClass(ContinuationClassLoader.java:114)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at org.apache.cocoon.components.flow.java.JavaInterpreter.initialize(JavaInterpreter.java:93)
... 177 more
