magnolify.bigtable.ByteStringComparator is built with Java 11 since 0.4.7 release
mattnworb opened this issue · 0 comments
It looks like the class magnolify.bigtable.ByteStringComparator
is accidentally being compiled with Java 11 since version 0.4.7:
$ javap -v -cp magnolify-bigtable_2.12-0.4.8.jar magnolify.bigtable.ByteStringComparator | grep "major version"
major version: 55
$ javap -v -cp magnolify-bigtable_2.12-0.4.7.jar magnolify.bigtable.ByteStringComparator | grep "major version"
major version: 55
$ javap -v -cp magnolify-bigtable_2.12-0.4.6.jar magnolify.bigtable.ByteStringComparator | grep "major version"
major version: 52
list of classfile major versions by release
I noticed this does not happen for all classes in the jar, perhaps a difference between the Java sources and Scala sources in https://github.com/spotify/magnolify/tree/main/bigtable/src:
$ javap -v -cp magnolify-bigtable_2.12-0.4.8.jar magnolify.bigtable.BigtableType | grep "major version"
major version: 52
$ javap -v -cp magnolify-bigtable_2.12-0.4.8.jar magnolify.bigtable.Columns | grep "major version"
major version: 52
This came up when a team recently upgraded to version 0.4.8 (from 0.4.6) of the library (I'll fill this in later) on a pipeline running on Cloud Dataflow with Java 8 workers:
java.lang.UnsupportedClassVersionError: magnolify/bigtable/ByteStringComparator has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0