Java7Default
Encoding
40
error: unmappable character for encoding ASCII.
This issue constitutes that largest number of build failures; Java 7 treats source file encoding issues as errors rather than warnings - this can effect both javac and javadoc operations.
Fixes
ant
Ensure appropriate encoding is passed to javac and javadoc commands; this will normally need to be patched into the build.xml file:
<javac ... encoding="ISO-8859-1">...
OR the source and target can be set explicitly for all javac and javadoc commands using:
# Ensure that source and target are 1.5 # For backwards compat on Java 7 ant.build.javac.source=1.5 ant.build.javac.target=1.5
maven
Defaults to source/target 1.5.
specify the source file encoding in debian/maven.properties (when in use) using:
# Set encoding for compatibilty with Java 7 project.build.sourceEncoding=ISO-8859-1
javahelper
Override/update debian/rules to specify source/target 1.5
jh_build --javacopts="-source 1.5 -target 1.5" --javadoc-opts="-source 1.5" }}] == Public API Changes == 14 https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+api Package does not implement new public API requirements for Java 7; normally something JDBC related and relatively easy to fix. == Language Handling Changes == 10 https://bugs.launchpad.net/ubuntu/+bugs?search=Search&field.bug_reporter=james-page&field.tags_combinator=ALL&field.tag=java7-ftbfs+lang Some sort of language handling change (typically generics handling) causes the build failure e.g: {{{ error: name clash: boxedFor(Class<? extends Boxed>,long) in org.gnome.gdk.Plumbing and boxedFor(Class<?>,long) in org.gnome.glib.Plumbing have the same erasure, yet neither hides the other
Again needs fixing upstream - I suspect that these again will follow specific patterns with stock fixes.
Maven2
6
Maven 2 not parsing warning error message causing failure
could not parse error message: warning: [options] bootstrap class path not set in conjunction with -source 1.5
Bug in Maven 2; needs to handle new Java 7 warning message (see http://blogs.oracle.com/darcy/entry/bootclasspath_older_source for explanation of what it means)
Private API
4
Package makes use of private API no longer present or changed in Java 7; harder to fix as requires use of different API or significant refactoring; best worked out with upstream.
JAVA_HOME
4
Problems with JAVA_HOME in rules not matching default-java i.e. using openjdk6 explicitly, fixable in packaging
Test Failures
Failure in test suite caused build failure.
Fop/Font Handling
[exec] org.apache.fop.apps.FOPException: Can't load standard profile: sRGB.pf
I think this is related to http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=641530 in openjdk-6