Google fired back at Oracle yesterday in their dispute over Java, claiming that Oracle had once criticized the licensing policies it now seeks to uphold.
The formal answer to Oracle's complaint over Google's alleged infringement of patents related to Java made its way into the U.S. District Court for the Northern District of California late yesterday evening. Oracle, wielding patents it acquired along with Sun Microsystems in 2009, claimed in August that Google's implementation of the Dalvik virtual machine in Android--among other things--violated as many as seven patents.
Google responded by denying Oracle's claims of infringement, and also asked Judge William Alsup to declare the patents invalid. In making its argument, Google pointed out that before Oracle acquired Sun, it was critical of the stance Sun assumed when it came to licensing a key part of the Java platform, a test compatibility kit needed to obtain an open-source license for the entire Java platform.
In its answer, Google claimed Sun released the specs for its Java virtual machine in a manner that allowed other software developers to build "clean-room implementations of Sun's Java specifications." However, it pointed out that Sun was unwilling to release the test compatibility kit (TCK) under the same open-source license that it was willing to release the rest of the Java platform, basically ensuring that Sun would receive some licensing revenue from Java and could control which projects could be deemed compatible with Java.
In 2009, Google said Oracle criticized Sun for this stance by lending its support to the platform advocated by the Java Community Process standards group, which wrote: "TCK licenses must not be used to discriminate against or restrict compatible implementations of Java specifications by including field of use restrictions on the tested implementations or otherwise. Licenses containing such limitations do not meet the requirements of the JSPA, the agreement under which the JCP operates, and violate the expectations of the Java community that JCP specs can be openly implemented."
However, once Oracle completed its acquisition of Sun later that year, it has "ignored the open source community's requests to fully open-source the Java platform," according to the answer.
The dispute seems likely to come down to the notion of just how "clean" Google's "clean-room implementation" of the Dalvik virtual machine really is. Dalvik allows software developers to use the Java programming language to write their apps for Android phones.
When Android was first announced, Sun executives were skeptical that Google could have really pulled off a truly clean implementation. Google noted that Dalvik includes technology developed by the Apache Software Foundation that received the full open-source license from Sun.
"Although software applications for the Android platform may be written in the Java programming language, the Dalvik bytecode is distinct and different from Java bytecode," Google wrote in its answer. "The Dalvik VM is not a Java VM."
Updated 11:10 a.m. PDT: Oracle issued its own statement on Google's answer later in the day.
"In developing Android, Google chose to use Java code without obtaining a license. Additionally, it modified the technology so it is not compliant with Java's central design principle to 'write once and run anywhere.' Google's infringement and fragmentation of Java code not only damages Oracle, it clearly harms consumers, developers and device manufacturers."
A full copy of the answer follows below: