I discovered after updating this morning that I could not build the system. The problem
was that Hongbing updated hackyCore_Common last Friday to use a Java5 class
(java.util.concurrent).
The bigger problem is that this did not cause the build to fail, despite the fact that
our hackyCore_Build.javac presetdef sets source="1.4".
After some investigation, I discovered that the "source" parameter to javac is a
grammar-level switch, not a library-level switch. For example, source=1.4 will fail the
compile if you use a 1.5 grammar feature such as generics in your code, but (as we just
discovered) does not fail the compile if you use a Java 1.5 library feature (example:
java.util.concurrent) in your code.
The good news is that I can svn revert the hackyCore_Common module back one revision and
continue with what I'm doing.
I'd like to keep the Hackystat code base 1.4 compliant for the time being, so I've
reopened HACK-606 for Hongbing with two requests:
- use the edu.oswego.util.concurrent package
- install (if necessary) and switch to the jdk1.4 compiler on hackydevsite so we can
catch these problems in future via the daily build.
Cheers,
Philip