Bug#503791: javassist: java bytecode / java runtime version mismatch

Matthias Klose doko at cs.tu-berlin.de
Tue Oct 28 08:26:25 UTC 2008

Package: javassist
Version: 1:3.8.1-1
Severity: serious
User: debian-java at lists.debian.org
Usertags: jbc-mismatch

This package builds with openjdk-6 or cacao-oj6, which is not the
default jvm in testing/unstable. The openjdk-6 and cacao-oj6 javac
creates java bytecode for version 50, which cannot be used by older
jvms. Binary packages explicitely built with openjdk-6 or cacao-oj6
must not depend on java-runtime{,1,2,5}{,-headless}, but only on
java-runtime6{,-headless} or any of the non-virtual packages providing
a java6 runtime.

It is preferred to build the bytecode so that it runs on older jvms.
This is done passing '-source 1.[45]' to javac (or for cdbs ant tasks
setting ANT_OPTS to -Dant.build.javac.source=1.[45].

You usually can check for the java byte code with file(1), currently
broken in testing/unstable, or use javap -verbose (a script checking
the command line args (check-class-version) can be found at
http://people.debian.org/~doko/tmp/. Both .class and .jar files found
in the binary packages need to be checked.

Note: this report may be a false positive, if all bytecode files have
version 49 or less.

More information about the pkg-java-maintainers mailing list