jdk8u backport is brokent in 1.8.0.232.b09

Roman Kennke rkennke at redhat.com
Fri Nov 15 09:37:05 UTC 2019


Hi Roland,

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

In other words, this appears to be an issue that should be reported
upstream to one-nio. Right?

Thanks,
Roman



More information about the shenandoah-dev mailing list