For almost a decade now, Oracle and Googlehave been locked in a legal dispute over the Java API. To date, there has been a jury trial, several district court rulings, multiple appeals, one denial of cert by the Supreme Court, and one cert currently pending. With the case before the Supreme Court still pending, it gives me a chance to go back and review the history. This series of posts will go through each of the major decisions so far, starting with the original District Court decision from 2012. So without further ado, let’s dive in.
Oracle America v. Google, May 31, 2012
The dispute concerns Google’s reimplementation of the Java API. The court did a thorough job of walking through what an API is and why it is required. Additionally, there are tons of resources available explaining what an API is. But the history between Oracle and Google is relevant. Java is a proprietary language that was initially developed by Sun, who was then acquired by Oracle. Currently, Oracle provides a free license to use Java for personal use but requires commercial users to purchase a license. This is the result of a recent change, but for our purposes, this is a close enough summary. Google approached Oracle in an attempt to procure a licensing deal when it was first developing the Android platform, but the two parties could not reach an agreement. Instead, Google developed its own implementation of Java. Google was careful not to use the same code while implementing the virtual machine or the libraries. However, in the development of 166 packages, 37 had the same declaration, although the actual implementation within the functions was found to be unique. The example used throughout the decision was “java.lang.Math.max,” and it provides a sufficiently concise example of what is at issue here. The Court noted several times that approximately 3% of the total code was similar.
So again, Google reimplemented a total of 166 packages, of which 37 had a similar declaration. While 37 is ~22% of 166, only the declaration was similar not the actual method implementation. The Court does not address defenses such as fair use yet, but this will be discussed in later cases.
After going through some of the case histories, the Court looks at the history of copyright law, especially as it relates to what it calls “structure, sequence, and organization.” In fact, this history lesson takes up the majority of the decision, and even the Court recognizes that it is verbose. However, it does cover some staples of copyright law and makes for a good refresher. Here is an abbreviated list of the cases and issues:
- Baker v. Sheldon (the accounting system case),
- Whelan Associates v. Jaslow Dental Laboratory (dental bookkeeping software interface),
- Computer Associates International v. Altai (genesis of the “abstract-filtration-comparison” test),
- Sega Enterprises v. Accolade (allowing the scenes a faire doctrine for computer programs),
- Feist Publications v. Rural Telephone Services (the telephone-book case),
- Johnson Controls v. Phoenix Control Sys (allowing for an injunction based on the structure of a computer program),
- Brown Bag Software v. Symantec Corp (introducing the “intrinsic v. extrinsic” test),
- Atari Games Corp v. Nintendo of America (code can be protected from reverse engineering if there are alternate expressions available),
- Sony Computer Entertainment v. Connectix Corporation(the Playstation BIOS was not protected because it was a functional element).
After the lengthy history lesson, the Court finally turns to the case at hand. In the Court’s mind, there are two central questions before it. First is whether the method declaration can be protected. Here the Court was convinced that the method declaration was equivalent to the actual idea, noting that:
“Based on a single implementation, Oracle would bypass this entire patent scheme and claim ownership over any and all ways to carry out methods . . . Under the Copyright Act, no matter how creative or imaginative a Java method specification may be, the entire world is entitled to use the same method specification . . . as long as the line-by-line implementations are different.”
It goes on to unapologetically state that “method specification is the idea. The method implementation is the expression. No one may monopolize the idea.”
With that, the Court moves on to the second question, whether the grouping of methods is protectable. While the Court agrees that the method “max” could be in another class besides “Math,” it sees this as a command structure for a method of operation. Once it is identified as a method of operation, there is a statutory bar on copyright protection.
With both of these questions answered in a way to prevent copyright protection, the Court held that there was no infringement by Google. Of course, this is not the end, Oracle appealed the decision, and it goes on until today. Next week we will look more at the district courts logic before moving on to the appeal’s decision.