Mueller Defends Java Android Code Claims; Analysts Weigh In

A headline-grabbing claim of the discovery of new evidence supporting Oracle's allegation that Google infringed on copyrights related to the Java Platform in its Android mobile operating system sparked a hot debate in the blogosphere over the weekend.

On Friday, Florian Mueller, the founder and former director of the NoSoftwarePatents campaign, claimed on his FOSS Patents blog that he had found files in the Android code repository bearing Sun copyright headers identifying them as proprietary and confidential. Mueller argues that those files, which form part of Froyo (Android 2.2) and Gingerbread (Android 3.0), show the same pattern of direct copying that Oracle is alleging.

"I think Google has a lot of explaining to do in the court case," Mueller told ADTmag in a phone interview last week, "but they also have to rectify things between themselves and the Apache Software Foundation, because these six files contain a notice that suggests that it belongs to the ASF."

Mueller's post was picked up by a number of media outlets Friday and generated a lot of attention. It also elicited a fierce rebuttal from Java programmer Ed Burnette, who declared on the ZDNet's Dev Connection blog that Mueller's conclusions were "much ado about nothing." Burnette, whose bio describes him as a veteran programmer, Eclipse committer, founding editor of EclipseZone.com, and author of Eclipse IDE Pocket Guide (O'Reilly Media, 2005), wrote, "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 argued the files (PolicyNodeImpl.java, AclEntryImpl.java, AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java, and PrincipalImpl.java) are located in the unit test area of the source code tree. "As any programmer will tell you," Burnette wrote, "you don't ship your unit tests with your product. Unit tests are tools used internally to ensure the quality of the software before you ship it."

In an update to his original blog post, Burnette added that Google deleted PolicyNodeImpl.java from the source tree on Oct. 30, 2010, and that the other six java files were deleted on Jan. 14, 2011. Also, the commit comment from developer Dan Bornstein reads, "Remove pointless tests."

In a follow-up e-mail to this site sent late Friday, Mueller shot back that Burnette had posted "inaccuracies and unsubstantiated claims" that muddied the waters.

"He doesn't even dispute that the files and notices I found exist," he said in the e-mail. "Concerning the 'removal' of them from an Android tree, he talks about the Android 3.0 tree, but that doesn't change the fact that the files are in the Android 2.2 and 2.3 trees -- the currently relevant versions…"

Mueller added: "More generally, [Burnette] fails to understand the significance of an unauthorized license change of software. Once you put something out on open source terms for the world to use on them, it's completely beyond control what will happen. He just believes that those files were never built into anything -- but he can't prove [it]. Since the code contained in those files isn't unit testing code but security and wireless code, those files can definitely be used for serious purposes, not just testing."

Mueller posted a detailed rebuttal on his blog Sunday that can be read here.

This debate is about the copyright aspects of Oracles claim against Google. (The suit also alleges patent infringement.) In particular, Exhibit J of Oracle's amended complaint. That amendment contains a synopsis of source code shipped by Google and Sun's original Java code.

Mueller also identified 37 files marked "proprietary/confidential" by Sun, and a copyright notice file that reads "do not distribute!" Those files appear to relate to the Mobile Media API of the Sun Java Wireless Toolkit, Mueller said.

Many of the industry analysts contacted for this story declined to comment directly on this new Internet dustup, but a few offered some general thoughts.

"There's a lot in here that's best left to the lawyers," said George Reese, CTO of enStratus and author of Java Database Best Practices (O'Reilly Media, May 2003) in an e-mail interview. But he added: "Whether or not these classes represent unit tests is irrelevant. [Google is] infringing by having these things in the Android source tree, regardless of whether they are unit tests (assuming, they are in fact proprietary files and not covered by some licensing arrangement). The fact that the license headers have been changed is uninteresting. Tools like Maven will just go through a source tree and replace license headers, so any replacement of license headers was likely not malicious in intent. That the files were deleted from the repository does not change the fact that they were infringing at the time of the complaint. It may help with respect to damages and such, but that's a lawyer's question."

"I don't know who is right," he said. "But it smells like someone with the ASF or Google did something stupid, probably not willful, and ultimately not terribly important to the function of Android."

Writing for Ars Technica, Ryan Paul concluded that Mueller does offer several new files that weren't known before, "but it's still basically the same stuff that Oracle presented in its previous filing that everyone dissected back in October." (Mueller takes issue with this article in the aforementioned Sunday rebuttal post.)

Pamela Jones, creator and editor of legal news site Groklaw, wrote on her blog: "The bottom line is this: none of us in the public would know at this point if any code was infringed or not, not you, not me, not Florian. Even if Oracle were feeding him inside information, he still wouldn't know, because Oracle doesn't know yet. Neither does Google. We are all in suspension until discovery is done and analysis of the code by the experts in the court case."