In a high-profile case, a jury recently found that Google’s use of portions of Oracle’s Java software code was allowable under the fair use doctrine and thus did not constitute copyright infringement. Oracle sought as much as $9 billion in damages from Google for incorporating approximately 11,000 lines of Oracle’s Java software code into Google’s Android software. Not only were billions of dollars in monetary damages at stake in this dispute, but also a controversial legal concept that could have repercussions for the entire software industry.
The issue is whether Oracle can claim a copyright on Java APIs and, if so, whether Google infringes these copyrights by implementing them into their Android software. APIs, or Application Programming Interfaces, are a set of routines, functions, specifications, etc., that allow software programs to communicate or interact with each other. APIs are one of the most common ways technology companies integrate software and applications with each other and allow for third-party developers to write programs (i.e. Apps) to run on their products. Google, and those on its side, said an Oracle victory would stifle software innovation by discouraging third-party programmers and developers from using APIs. Oracle, and those on its side, said a Google victory hurts innovation by weakening intellectual-property protections for software and discouraging companies from creating new software platforms.
The dispute itself traces back to 2010 when Oracle sued Google in United States District Court for the Northern District of California, case number 3:10-cv-03561, for both patent infringement and copyright infringement. Oracle alleged that Google’s Android software illegally used key pieces from Java that related to 37 APIs created to help programmers more easily write in Java. Java was originally developed by Sun Microsystems beginning in 1991. Oracle purchased Sun in January 2010, and continued the Java platform. Google first released a beta version of its Android mobile phone operating system in 2007, and noted from the beginning that it would incorporate some Java pieces. Google wrote its own version of Java for Android, but in order to allow third-party developers to write programs for Android, Google also used the same names, organization, and functionality as the Java APIs.
In May 2012, a jury found that Google did not infringe any asserted claim of Oracle’s two patents-in-suit, but the jury did find that Google had copied the “structure, sequence and organization” of parts of the 37 Java APIs. “Structure, sequence and organization” is a legal term used to define a basis for comparing one software work to another in order to determine if copyright infringement has occurred when one software code is not a literal copy of the other. However, District Court Judge William Alsup overturned the jury finding on copyright infringement and ruled that the structure of the Java APIs used by Google was not copyrightable. Judge Alsup reasoned that “so long as the specific code used to implement a method is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function or specification of any methods used in the Java API.”
Oracle appealed Judge Alsup’s copyright ruling to the Court of Appeals for the Federal Circuit, which had appellate jurisdiction instead of the Ninth Circuit Court of Appeals because the District Court case also contained patent claims. The Federal Circuit reversed the District Court on the copyright issue, holding that the “structure, sequence and organization” of an API could be copyrightable. The Federal Circuit acknowledged that Oracle’s APIs were somewhat functional, but that does not “automatically” put them beyond the scope of copyright law. Google petitioned for review from the United States Supreme Court, but the Supreme Court denied Google’s request in June 2015, and the case was remanded back to the district court for the current proceedings on the fair use defense and damages.
Trial in the current case began on May 9, again in front of Judge Alsup in the Northern District of California, on whether Google’s use of the APIs was protected by the fair use doctrine and therefore exempt from copyright infringement. The fair use doctrine is a defense or exemption to copyright infringement that allows the incorporation of copyrighted material in another’s work if a four-factor balancing test is met. In determining whether the use made of a work in any particular case is a fair use, the factors to be consider are: (1) the purpose and character of the use, including whether the use is commercial or for nonprofit/educational purposes and whether it is transformative; (2) the nature of the copyrighted work; (3) the amount used in relation to the copyrighted work as a whole; and (4) the effect of the use on the potential market for or value of the copyrighted work. Per the jury instructions, Google had the burden of proof to show fair use.
During the trial, Google argued that its use of the Java APIs was transformative under the first factor because it used the Java APIs as part of a new platform for mobile devices. Google argued under the second factor, the nature of the work, that APIs rank low on the creativity scale because they are more functional in nature. Under the third prong, Google argued that it used only a small amount of the overall code that was necessary to effectively use the open-source Java language, and that the 11,000 lines of Java code it used was less than 0.1% of Android’s 15 million lines of code. Finally, under the fourth prong, Google argued there was little market harm to Oracle because no one was using the APIs for mobile devices at the time.
Oracle argued under the first prong that the Java APIs were already being licensed and adapted by Sun at the time for mobile devices, and that the use by Google was commercial anyway. As to the second and third factor, Oracle argued the APIs represent a lot of skill and creativity, and that Google did not have a right to use exact lines of Java code or the overall structure, sequence, and organization of the 37 APIs. In addition, Oracle argued, 11,000 lines of code is still a significant amount of code. For the fourth factor, Oracle argued that the success of Android shows harm to the market because Oracle would have been able to license its Java code in the mobile space if Google had not copied its APIs without permission.
On May 26, after three days of deliberations, the jury came back with a unanimous verdict in favor of Google, finding Google’s use of the Java APIs in Android to constitute fair use. Regardless, the case is still far from over as Oracle has already said it will appeal to the Federal Circuit. Oracle’s appeal will likely focus on the District Court’s jury instructions and how closely those instructions capture the Federal Circuit and Ninth Circuit’s application and analysis of fair use. Moreover, no matter which way the Federal Circuit goes, we can expect the losing party to ask the Supreme Court to review the issue. So, while the current result is a big win for Google and other supporters of open-source software, the road to final resolution of this issue is still a long one.