Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Implemented
-
0.9.0
-
None
Description
Apologies if this was already on someone's to-do list, but I wanted to track this, as it bit two commits in the last few weeks.
Spark is intended to work with Java 6, and so compiles with source/target 1.6. Java 7 can correctly enforce Java 6 language rules and emit Java 6 bytecode. However, unless otherwise configured with -bootclasspath, javac will use its own (Java 7) library classes. This means code that uses classes in Java 7 will be allowed to compile, but the result will fail when run on Java 6.
This is why you get warnings like ...
Using /usr/java/jdk1.7.0_51 as default JAVA_HOME.
...
[warn] warning: [options] bootstrap class path not set in conjunction with -source 1.6
The solution is just to tell Jenkins to use Java 6. This may be stating the obvious, but it should just be a setting under "Configure" for SparkPullRequestBuilder. In our Jenkinses, JDK 6/7/8 are set up; if it's not an option already I'm guessing it's not too hard to get Java 6 configured on the Amplab machines.