]
Shigeru Chiba commented on JASSIST-248:
---------------------------------------
Good. The next release will be this June or July.
Constant pool index 268 is invalid
----------------------------------
Key: JASSIST-248
URL:
https://issues.jboss.org/browse/JASSIST-248
Project: Javassist
Issue Type: Bug
Affects Versions: 3.19.0-GA
Reporter: Laurent Pellegrino
Assignee: Shigeru Chiba
Labels: regression
Fix For: 3.21.0-GA
Attachments: _StubLinkedList.class
We are using Javassist for one of our open source projects since about 10 years.
Recently, I have tried to upgrade to version 3.19 and 3.20. Unfortunately, with both
versions, generated byte code seems to cause errors with the JVM.
Below is the output:
{code}
Exception in thread "RestartDownNodesPolicy node status check"
java.lang.VerifyError: Illegal type at constant pool entry 268 in class
pa.stub.java.util._StubLinkedList
Exception Details:
Location:
pa/stub/java/util/_StubLinkedList.replaceAll(Ljava/util/function/UnaryOperator;)V
@43: invokespecial
Reason:
Constant pool index 268 is invalid
Bytecode:
0x0000000: 2ab4 00cc 9900 252a b400 0db2 002c 100b
0x0000010: 32c0 0028 04bd 00ce 5903 2b53 b200 26b8
0x0000020: 00d7 b900 dd02 0057 b12a 2bb7 010c b1
Stackmap Table:
same_frame(@41)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.objectweb.proactive.core.mop.MOP.forName(MOP.java:155)
at org.objectweb.proactive.core.mop.MOP.findStubConstructor(MOP.java:649)
at org.objectweb.proactive.core.mop.MOP.createStubObject(MOP.java:822)
at org.objectweb.proactive.core.mop.MOP.newInstance(MOP.java:338)
at org.objectweb.proactive.core.mop.MOP.newInstance(MOP.java:196)
at
org.objectweb.proactive.core.body.proxy.AbstractBodyProxy.reifyAsAsynchronous(AbstractBodyProxy.java:277)
at
org.objectweb.proactive.core.body.proxy.AbstractBodyProxy.invokeOnBody(AbstractBodyProxy.java:154)
at
org.objectweb.proactive.core.body.proxy.AbstractBodyProxy.reify(AbstractBodyProxy.java:123)
at
pa.stub.org.ow2.proactive.resourcemanager.nodesource._StubNodeSource.getDownNodes(_StubNodeSource.java)
at
org.ow2.proactive.resourcemanager.nodesource.policy.RestartDownNodesPolicy$1.run(RestartDownNodesPolicy.java:92)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
{code}
The issue seems related to default methods introduced in Java 8. Perhaps its not an issue
with Javassist but to be honest I don't understand the exception. However, I have
noticed that using Javassist in version 3.18.2 solves the problem.