Why JDK-8157181 conditional in JDK 9 EA ?

Evgeny Mandrikov mandrikov at gmail.com
Sun Dec 11 21:58:11 UTC 2016


Rory O'Donnell gave me an advice [1] to provide our concerns about
JDK-8157181 [2] here. But excuse me if this is wrong place or too late.

In JaCoCo project [3] we accidentally discovered JDK-8157181 [2], which
revealed that we were generating bytecode that violates JVMLS [4]. What was
a bit surprising - is a conditional behavior of verifier based on bytecode
version. At a time of discovery we had no ability to compile into bytecode
version 9 given the state of tools in build stack (minifiers, verifiers,
etc) and had only ability to execute with JDK 9 EA. I guess that many
projects might relatively easily start testing 9 EA just as runtime
environment, while change of a target still might require bigger investment
as was the case for us. From there, I wonder why this logic was was not
made unconditional as was discussed in JDK-8157181 [2], especially in
presence of tickets for backporting [5]. Or maybe this happened, but we
just didn't noticed since bug on our side was fixed? The verification
itself is great and IMO might reveal bugs in tools that generate bytecode.

Best regards,
Evgeny Mandrikov

[1] https://groups.google.com/d/msg/jacoco-dev/sRXi8TD96js/w4T8DpffAwAJ
[2] https://bugs.openjdk.java.net/browse/JDK-8157181
[3] http://www.jacoco.org/jacoco/index.html
[4] https://github.com/jacoco/jacoco/pull/434
[5] https://bugs.openjdk.java.net/browse/JDK-8161987

More information about the hotspot-dev mailing list