Fans of Google who were rooting for the company in the Oracle v. Google copyright infringement case over Java may be a bit dismayed after reading the claims from Florian Mueller this morning. According to Mueller, there is mounting evidence in the original source files from Oracle's Java and Google's Android that code was indeed infringed.
[Author's Note: Based on Mueller's own self-description, I have edited out "free software advocate" as a description. The original characterization was an error on my part. The story has also been updated to include new research that refutes Mueller's evidence.]
In fact, Mueller claims that there is even more evidence of infringement than that highlighted in Oracle's recent amendment to the lawsuit, which contains Exhibit J. This exhibit displays evidence that Oracle claims is clearly infringement on the part of Google's Android developers.
I am not going to be one of those analysts who jumps up and cries out "infringement!" every time they see similar code. As we saw way back at the beginning of the SCO v. the Planet Earth debacle, that kind of behavior can easily be manipulated by either party in a lawsuit. Mueller likely knew this too, so instead of just looking at the exhibit, he claims to have examined the original source files from Oracle's Java and Google's Android.
Update: What he found seems a bit alarming, particularly for Google: 46 pages of what appears to be line-for-line copying of Java code in Android files, all laid out for the world to see. Not only was code copied, but the code was copied from Oracle files that contained explicit Oracle and Sun copyrights. If this evidence is a valid source, and Mueller invited others to download the code files and look for themselves, then it would appear to be damning evidence against Google. I have had my differences with Mueller, and still do: but I saw little reason for him to make this stuff up. Clearly, more research was needed.
And that research has been done, by ZDNet's Ed Burnette, who categorically refutes Mueller's evidence:
"It all started with an article written by Florian Mueller, who by the way is neither a lawyer nor a developer although he plays one on TV. I downloaded and examined all the files he wrote about, and my analysis as an expert developer comes to a completely different conclusion than Mr. Mueller," Burnette wrote. He then continues to pick apart Mueller's evidence as little more than erroneous comments in the code files.
At this point, you may be asking yourself, how is it that someone can be sued for infringement when the Java code is under the GPL? Well, first off, remember that Java Mobile Edition (JavaME) is not completely under the free GPL license: that's part of why Google wanted to build a clean-room implementation of Java for Android in the first place.
When Sun Microsystems, the original creators of Java, first opened Java under the GPL, they implemented a special ClassPath exception for JavaME. This would mean that any application developed for a JavaME platform would have to also be GPLed. Essentially, Sun brought to life all of those old "viral GPL" fears from the early days of free software and made them real in the JavaME license. It's likely Sun knew full well the consequences of this act: mobile hardware and software developers would be loath to GPL their code, so this would force said developers to buy the commercial license for JavaME instead. Boom! Instant money maker for Sun.
Except Google decided they didn't want their new Android platform to be beholden to Sun's commercial license (nor were they willing to use the ClassPath-excepted GPL version). So, they went to the Apache Software Foundation's (ASF's) implementation of Java--Harmony--and built a clean version of Java for themselves.
Looking at the code highlighted in Exhibit J it appears that Harmony code wasn't clean to start with. Much of the code from Android in these examples contains notes and licensing information from the ASF, because Harmony was released under the Apache Public Licence.
And therein lies the real trouble: if there is infringement here, it's because someone took Sun's exception-GPLed copyrighted code and changed the license to the APL. That's not acceptable, since only the copyright holder can change the license for any given bit of code.
Update: Given these new developments, Mueller's evidence may seem less of a smoking gun than it did before. Given Mueller's past criticism of the Open Invention Network and how it can do little good in cases like these, some will cite this as a motive for him to make Oracle look better and the OIN look weaker.
Motives aside, no matter how much you may or may not like Oracle (and they're not high on my hit parade, either), they are still a member of the free software community. JavaME is still licensed under the GPL and thus deserves all the same legal protections as the small software projects that pervade throughout the community. If we pick and choose which software gets protected based on how much we like or dislike the holder of that software, then the whole point of the GPL is weakened.
Oracle deserves its day in court, just like any other member of the free software community. Google deserves the same, because as troublesome as these code examples may appear to be, it will take a court decision to prove infringement or not.
Sometimes defending freedom means defending the rights of those you don't agree with.