Oracle America, Inc. v. Google Inc.

750 F.3d 1339, 110 U.S.P.Q. 2d (BNA) 1985, 2014 WL 1855277, 2014 U.S. App. LEXIS 8744
CourtCourt of Appeals for the Federal Circuit
DecidedMay 9, 2014
Docket2013-1021, 2013-1022
StatusPublished
Cited by56 cases

This text of 750 F.3d 1339 (Oracle America, Inc. v. Google Inc.) is published on Counsel Stack Legal Research, covering Court of Appeals for the Federal Circuit primary law. Counsel Stack provides free access to over 12 million legal documents including statutes, case law, regulations, and constitutions.

Bluebook
Oracle America, Inc. v. Google Inc., 750 F.3d 1339, 110 U.S.P.Q. 2d (BNA) 1985, 2014 WL 1855277, 2014 U.S. App. LEXIS 8744 (Fed. Cir. 2014).

Opinion

O’MALLEY, Circuit Judge.

This copyright dispute involves 37 packages of computer source code. The parties have often referred to these groups of computer programs, individually or collectively, as “application programming interfaces,” or API packages, but it is their content, not their name, that matters. The predecessor of Oracle America, Inc. (“Oracle”) wrote these and other API packages in the Java programming language, and Oracle licenses them on various terms for others to use. Many software developers use the Java language, as well as Oracle’s API packages, to write applications (commonly referred to as “apps”) for desktop and laptop computers, tablets, smartphones, and other devices.

Oracle filed suit against Google Inc. (“Google”) in the United States District Court for the Northern District of California, alleging that Google’s Android mobile operating system infringed Oracle’s patents and copyrights. The jury found no patent infringement, and the patent claims are not at issue in this appeal. As to the copyright claims, the parties agreed that the jury would decide infringement, fair use, and whether any copying was de minimis, while the district judge would decide eopyrightability and Google’s equitable defenses. The jury found that Google infringed Oracle’s copyrights in the 37 Java packages and a specific computer routine called “rangeCheck,” but returned a noninfringement verdict as to eight decompiled security files. The jury deadlocked on Google’s fair use defense.

After the jury verdict, the district court denied Oracle’s motion for judgment as a matter of law (“JMOL”) regarding fair use as well as Google’s motion for JMOL with respect to the rangeCheck files. Order on Motions for Judgment as a Matter of Law, Oracle Am., Inc. v. Google Inc., No. 3:10-cv-3561 (N.D.Cal. May 10, 2012), ECF No. 1119. Oracle also moved for JMOL of infringement with respect to the eight decompiled security files. In granting that motion, the court found that: (1) Google admitted to copying the eight files; and (2) no reasonable jury could find that the copying was de minimis. Oracle Am., Inc. v. Google Inc., No. C 10-3561, 2012 U.S. *1348 Dist. LEXIS 66417 (N.D.Cal. May 11, 2012) (“Order Granting JMOL on Decompiled Files ”).

Shortly thereafter, the district court issued its decision on copyrightability, finding that the replicated elements of the 37 API packages — including the declaring code and the structure, sequence, and organization — -were not subject to copyright protection. Oracle Am., Inc. v. Google Inc., 872 F.Supp.2d 974 (N.D.Cal.2012) (“Copyrightability Decision ”). Accordingly, the district court entered final judgment in favor of Google on Oracle’s copyright infringement claims, except with respect to the rangeCheck code and the eight decompiled files. Final Judgment, Oracle Am., Inc. v. Google Inc., No. 3:10-cv3561, 2012 WL 9028839 (N.D.Cal. June 20, 2012), EOF No. 1211. Oracle appeals from the portion of the final judgment entered against it, and Google cross-appeals from the portion of that same judgment entered in favor of Oracle as to the rangeCheck code and eight decompiled files.

Because we conclude that the declaring code and the structure, sequence, and organization of the API packages are entitled to copyright protection, we reverse the district court’s copyrightability determination with instructions to reinstate the jury’s infringement finding as to the 37 Java packages. Because the jury deadlocked on fair use, we remand for further consideration of Google’s fair use defense in light of this decision. With respect to Google’s cross-appeal, we affirm the district court’s decisions: (1) granting Oracle’s motion for JMOL as to the eight decompiled Java files that Google copied into Android; and (2) denying Google’s motion for JMOL with respect to the rangeCheck function. Accordingly, we affirm-in-part, reverse-in-part, and remand for further proceedings.

Background

A. The Technology

Sun Microsystems, Inc. (“Sun”) developed the Java “platform” for computer programming and released it in 1996. 1 The aim was to relieve programmers from the burden of writing different versions of their computer programs for different operating systems or devices. “The Java platform, through the use of a virtual machine, enable[d] software developers to write programs that [wejre able to run on different types of computer hardware without having to rewrite them for each different type.” Copyrightability Decision, 872 F.Supp.2d at 977. With Java, a software programmer could “write once, run anywhere.”

The Java virtual machine (“JVM”) plays a central role in the overall Java platform. The Java programming language itself— which includes words, symbols, and other units, together with syntax rules for using them to create instructions — is the language in which a Java programmer writes source code, the version of a program that is “in a human-readable language.” Id. For the instructions to be executed, they must be converted (or compiled) into binary machine code (object code) consisting of 0s and Is understandable by the particular computing device. In the Java system, “source code is first converted into ‘bytecode,’ an intermediate form, before it is then converted into binary machine code by the Java virtual machine” that has been designed for that device. Id. The Java platform includes the “Java development kit (JDK), javac compiler, tools and utilities, runtime programs, class libraries (API packages), and the Java virtual machine.” Id. at 977 n. 2.

Sun wrote a number of ready-to-use Java programs to perform common eom *1349 puter functions and organized those programs into groups it called “packages.” These packages, which are the application programming interfaces at issue in this appeal, allow programmers to use the prewritten code to build certain functions into their own programs, rather than write their own code to perform those functions from scratch. They are shortcuts. Sun called the code for a specific operation (function) a “method.” It defined “classes” so that each class consists of specified methods plus variables and other elements on which the methods operate. To organize the classes for users, then, it grouped classes (along with certain related “interfaces”) into “packages.” See id. at 982 (describing organization: “[e]ach package [i]s broken into classes and those in turn [are] broken into methods”). The parties have not disputed the district court’s analogy: Oracle’s collection of API packages is like a library, each package is like a bookshelf in the library, each class is like a book on the shelf, and each method is like a how-to chapter in a book. Id. at 977.

The original Java Standard Edition Platform (“Java SE”) included “eight packages of pre-written programs.” Id. at 982. The district court found, and Oracle concedes to some extent, that three of those packages — java.lang,java.io, and java.util— were “core” packages, meaning that programmers using the Java language had to use them “in order to make any worthwhile use of the language.” Id.

Free access — add to your briefcase to read the full text and ask questions with AI

Related

Cite This Page — Counsel Stack

Bluebook (online)
750 F.3d 1339, 110 U.S.P.Q. 2d (BNA) 1985, 2014 WL 1855277, 2014 U.S. App. LEXIS 8744, Counsel Stack Legal Research, https://law.counselstack.com/opinion/oracle-america-inc-v-google-inc-cafc-2014.