On April 5, 2021, the U.S. Supreme Court decided a copyright dispute that raged for over a decade between Google LLC (Google) and Oracle America, Inc. (Oracle).[1] At the heart of the dispute was Google’s copying of portions of code providing Application Programming Interfaces (API’s) for the Java SE program. Oracle, through its purchase of Sun Microsystems, owns the rights in Java SE. Oracle sought to recover billions of dollars from Google for copyright infringement, based on the inclusion of APIs from Java SE in Google’s Android platform. The Court ruled, in a 6-2 decision authored by Justice Breyer, that Google’s copying constituted fair use of the code at issue.
In doing so, the Court avoided a broader ruling on the issue of whether the API’s are copyrightable, instead providing a detailed application of the four-factor fair use analysis to render a decision highly specific to the facts at issue. While the 62-page decision offers many thoughts and insights into the application of copyright law to computer programs, the Court passed on the opportunity to provide a categorical rule, and assured that its opinion does “not overturn or modify our earlier cases involving fair use…”
To put these complex software copyright issues in context, it is helpful to review the highlights of the dispute between Oracle and Google.
The (long) path to the Supreme Court
Google won the first round of the battle, at the trial level in the Northern District of California when the presiding judge decided that the code at issue[2] was not subject to copyright, as it constituted a “system or method of operation” specifically excluded from copyright by 17 U.S.C. § 102(b). But the Federal Circuit reversed, finding that the API’s declaring code and the organizational structure were copyrightable. Of note, the Federal Circuit sidestepped the fair use issue, because the factual record was not sufficiently developed, and remanded for a new trial on the fair use issue.
Google sought Supreme Court review of the copyrightability issue, but that petition was denied.
After a trial focused on the fair use question, Google won again, with the jury finding that the use of the Java API packages in Android constituted a fair use under the Copyright Act. And again, the Federal Circuit reversed, determining that as a matter of law Google’s use of the declaring functions from the Java SE API was not a fair use. The Federal Circuit then remanded the case for a trial on damages.
Google filed another petition for certiorari, seeking review of both the copyrightability and fair use issues. Google described the matter as the “copyright lawsuit of the decade” and urged the Court to unwind the Federal Circuit’s decisions on applicability of copyright and fair use.
Wherefore art thou, merger doctrine?
The Court granted Google’s petition, and many observers and amici expected the Court to delve into the application of the merger doctrine of copyright law. A fundamental axiom of copyright law is that copyright protects expression, not ideas. As applied to computer software, when there are many possible ways to write the code, there are opportunities for creative expression, and copyright protection may therefore apply to that expression. However, due to functional limitations, the code may limit choice or even dictate a particular expression, in which case the expression is said to “merge” with the function—and the code at issue is not protectable.
The merger question appeared central to the dispute, as Google argued the API declarations it used were dictated by the Java implementation. In other words, the Google platform needed to use the same function names as selected by the original Java creators so that Java-proficient developers could use the familiar constructs and avoid speaking a new language. Various amici described this process of leveraging the syntax of an existing system as “reimplementation.”
Oracle argued that Google was not required to use the same API declarations, and pointed to mobile operating systems created by Apple and Microsoft that did not borrow declaring functions from Java.
Ultimately, the Court sidestepped the key copyright question entirely (a point stressed repeatedly in the dissent authored by Justice Thomas). The majority opinion notes the many challenges in deciding the issue, and expressly avoids doing so on the basis of judicial restraint: “Given the rapidly changing technological, economic, and business-related circumstances, we believe we should not answer more than is necessary to resolve the parties’ dispute.”
In its conclusion, the Court alludes to the merger doctrine, when it notes the difficulty of “apply[ing] traditional copyright concepts” to computer programs, given their primarily functional nature. But instead of resolving that difficulty, the Court took pains to avoid any categorical rule that could be applied to future software copyright disputes.
Looking ahead
As a substitute for clarifying copyright scope, the Court instead provided a detailed fair use analysis that is sure to be cited often in future software disputes. In particular, the Court focused heavily on the “nature of the work” factor in its fair use analysis, breathing new life into a factor that is often considered less important in the four-factor analysis.
Also, as an important procedural point that could be overlooked in the lengthy opinion, the Court was given the opportunity to defer to the jury verdict on fair use. The Court rejected that request, instead expressly stating that fair use is primarily a question of law (“[i]n this case, the ultimate ‘fair use’ question primarily involves legal work” and “the ultimate question here is one of law, not fact”), opening the door for future judicial opinions assessing the fair use issue.
- Google LLC v. Oracle America, Inc., No. 18-956, 593 U.S. ____ (2021).
[Back to reference] - The code at issue in the dispute is referred to as the “declaring code” by the Supreme Court, which is described as the code comprising solely the function calls or declarations. It is undisputed that Google did not copy the “implementing code” that executed the named functions, just the “declaring code” that acts as the link to the function. The Supreme Court opinion provides a detailed explanation, and even an Appendix, to help explain the technical features of the Java API’s at issue (see id. at 3-8 and 37-38).
[Back to reference]