jdk8u backport is brokent in 1.8.0.232.b09

Roland Westrelin rwestrel at redhat.com
Fri Nov 15 09:10:14 UTC 2019


> I created an empty repo https://github.com/genuss/jdk8u232-minimal with
> mininal code and it breaks C2 on my machine even without Shenandoah
> enabled. I attached fat-jar to release on github so you won't need to build
> it https://github.com/genuss/jdk8u232-minimal/releases/tag/1.0. To run
> simply use java -jar minimal-example-1.0.0-jar-with-dependencies.jar

Thanks for putting that together.

The bytecode that C2 compiles doesn't seem correct:

one.nio.serial.GeneratedSerializer::write

0 fast_aaccess_0
1 fast_agetfield 11 <one/nio/serial/GeneratedSerializer.delegate/Lone/nio/serial/gen/Delegate;>
4 aload_1
5 aload_2
6 invokeinterface 38 <one/nio/serial/gen/Delegate.write(Ljava/lang/Object;Lone/nio/serial/DataStream;)V>
11 return

calls:

sun.reflect.Delegate1_BigInteger::write

0 aload_2
1 aload_1
2 fast_igetfield 35 <java/math/BigInteger.signum/I>

...

Argument 1 of GeneratedSerializer::write is of type java.lang.Object but
field being accessed at bci 2 in Delegate1_BigInteger::write is from a
BigInteger. A cast to BigInteger seems to be missing.

Roland.



More information about the shenandoah-dev mailing list