Java APIs Entitled to Copyright Protection: Federal Circuit | Practical Law

Java APIs Entitled to Copyright Protection: Federal Circuit | Practical Law

In Oracle America, Inc. v. Google Inc., the US Court of Appeals for the Federal Circuit reversed-in-part the US District Court for the Northern District of California's ruling that the command structure, sequence and organization (including headers and definitions) of 37 of Oracle's Java API packages were not copyrightable.

Java APIs Entitled to Copyright Protection: Federal Circuit

Practical Law Legal Update 0-567-8972 (Approx. 5 pages)

Java APIs Entitled to Copyright Protection: Federal Circuit

by Practical Law Intellectual Property & Technology
Published on 13 May 2014USA (National/Federal)
In Oracle America, Inc. v. Google Inc., the US Court of Appeals for the Federal Circuit reversed-in-part the US District Court for the Northern District of California's ruling that the command structure, sequence and organization (including headers and definitions) of 37 of Oracle's Java API packages were not copyrightable.
On May 9, 2014, the US Court of Appeals for the Federal Circuit issued an opinion in Oracle America, Inc. v. Google Inc. reversing the US District Court for the Northern District of California's decision in favor of Google on Oracle's copyright infringement claims involving 37 Java application programming interfaces (API packages) (Nos. 2013-1021, 2013-1022, (Fed. Cir. May 9, 2014)). The Federal Circuit found that the district court erred in finding that the copied portions of the APIs did not qualify for copyright protection and remanded the case to the district court to determine Google's fair use defense. The court also affirmed the district court's findings of infringement involving other Java code.

Background

Google used Sun Microsystems, Inc.'s (Sun) Java programming language in developing its Android mobile operating platform, including 37 API packages at issue on appeal. The API packages consist of two types of source code, referred to as:
  • Declaring code.
  • Implementing code.
In 2010, Oracle acquired Sun, including its interest in Java, and sued Google in the US District Court for the Northern District of California asserting copyright and patent infringement claims based on Google's use of the Java APIs. Google admitted to copying the 37 packages' declaring code into its Android software. Google copied the structure, sequence and organization of the 37 packages, but mainly wrote its own implementing code to achieve its desired functionality.
In 2012, the district court and a jury returned parallel decisions. On the key issue relevant to the appeal, the jury ruled that Google infringed Oracle's copyright in the 37 Java API packages, but deadlocked on Google's fair use defense. The jury also found that Google infringed a routine called rangeCheck and did not infringe eight decompiled security files.
Subsequently, the district court ruled that the code Google copied from the 37 APIs was not copyrightable. Specifically, the district court found that:
  • The declaring code was not copyrightable under the merger doctrine and short phrases doctrine.
  • Although the overall structure of Oracle's API packages is creative, original and resembles a taxonomy, it is a system or method of operation not copyrightable under section 102(b) of the Copyright Act.
  • Google's use of the API packages was necessary for interoperability.
Ruling on post-trial motions, the district court also:
  • Denied Oracle's motion for judgment as a matter of law (JMOL) on fair use.
  • Denying Google's motion for JMOL involving the rangeCheck code.
  • Granting Oracle's motion for JMOL of infringement of the eight decompiled security files.
Based on its determinations, the court issued a final judgment in favor of Google on the copyright infringement claims, except for those involving rangeCheck and the decompiled files. Oracle appealed the district court's decision on the copyrightability of its APIs and the district court's denial of its JMOL on fair use. Google cross-appealed the district court's denial of its JMOLs.
For more on the district court's decision and the factual background of the case, see Legal Update, Oracle v. Google: District Court Holds Command Structure of Java API Not Copyrightable.

Outcome

On appeal, Oracle argued that the district court:
  • Erred in determining that the declaring code and structure, sequence and organizitation of 37 Java APIs were not copyrightable
  • Should have dismissed Google's fair use defense as a matter of law.
The Federal Circuit concluded that the declaring code and structure, sequence and organization of the Java packages are expressive choices entitled to copyright protection. Therefore, it reversed the district court's finding in favor of Google and instructed the court to reinstate the jury verdict on the 37 APIs. Noting that the jury had deadlocked on the fair use defense. the Federal Circuit remanded the case for further proceedings on that issue.
The Federal Circuit also affirmed the district court's decisions that the rangeCheck and the decompiled infringed.

Copyrightability

Applying Ninth Circuit law, the Federal Circuit concluded that the copied elements of the 37 API packages were copyrightable. Key to its decision, the court found that the district court :
  • Failed to distinguish between the threshold question of what is copyrightable and what is a defense to infringement.
  • Improperly imported fair use principles into its copyrightability analysis.
The court noted the well-established principle that copyright protects both literal and non-literal elements of a computer program and that Oracle claimed copyright protection for its API packages in both:
  • The literal 7,000 lines of declaring source code.
  • The non-literal structure, sequence and organization.
The Federal Circuit employed standard copyright principles to the literal infringement issues. To determine the copyrightability of the API's non-literal elements, Federal Circuit applied the abstraction-filtration-comparison test endorsed by the Ninth Circuit. The test:
  • Breaks down the allegedly infringed program into its constituent structural parts.
  • Sifts out all non-protectable material, including ideas and expressions that are necessarily incidental to those ideas.
  • Compares the remaining creative expression with the allegedly infringing program.

Declaring Code

The Federal Circuit agreed with Oracle that the district court erred in finding the declaring code uncopyrightable under the merger and short phrase doctrines. It also rejected Google's arguments that the declaring code is unprotected scenes a faire. The court first noted that the Ninth Circuit views both merger and scenes a faire as affirmative defenses to copyright infringement and not questions of copyrightability.
Turning to the substance, the court noted that in the Ninth Circuit the merger doctrine does not render the unique expression of a computer program uncopyrightable if there are other ways of expressing the process. The Federal Circuit found that the district court had erred by focusing the merger analysis on the options available to Google when it copied the code. Instead, copyrightability is evaluated at the time a work is created. Here, the court noted that Oracle's evidence showed that Oracle had unlimited ways to select and arrange the 7000 lines of code at issue. The court applied a similar analysis in rejecting the scenes a faire doctrine.
The court also found that the district court erred in applying the short phrase doctrine to the declaring code, reasoning that:
  • A short phrase may be copyrightable if it is sufficiently creative.
  • Oracle was not claiming copyright protection in a single phrase, but in a collection of 7000 lines of code.

Structure, Sequence and Organization Are Copyrightable

The Federal Circuit also rejected as inconsistent with Ninth Circuit case law the district court's finding that the structure, sequence and organization of Oracle's software was not copyrightable. The Ninth Circuit recognizes that the structure, sequence and organization of a computer program is eligible for copyright protection where it qualifies as an expression of an idea, rather than the idea itself. The Federal Circuit rejected the district court's finding that because Oracle's structure, sequence and organization is functional, it is not entitled to copyright protection. Instead, the Federal Circuit ruled that an original work, even one that serves a function, is entitled to copyright protection as long as the author had multiple ways to express the underlying idea.

Interoperability by the Infringing Product is Relevant to Fair Use, Not Copyrightability

The Federal Circuit also rejected Google's argument, accepted by the district court, that it was necessary for Google to duplicate Oracle's command structure in the APIs to allow Google's Android software to operate with Java. The Federal Circuit held that this argument relates only to Google's fair use defense.
The Federal Circuit explained that only the choices available to the plaintiff at the time it created the computer program are relevant to copyrightability. By contrast, any use by the defendant to make its program interoperable is irrelevant to the copyrightability analysis, and would only be considered in a fair use defense to infringement.

Fair Use

The Federal Circuit also addressed Oracle's arguments that:
  • A remand to decide fair use is pointless.
  • That Google's commercial use of the Java APIs is not fair use as a matter of law.
The Federal Circuit disagreed, noting that the jury had hung on Google's fair use defense, and the district court had declined to order a new trial on fair use as a result of its holding that Oracle's software was not entitled to copyright protection.
The Federal Circuit recognized that where there are material facts in dispute regarding fair use, and those facts have not been resolved by the trier of fact, appellate courts may not make first-instance findings of fact. Since neither the jury nor the district court made findings of fact to which the Federal Circuit could refer in assessing the question of whether Google's use of the API packages was a fair use, the Federal Circuit remanded Google's fair use defense to the district court, consistent with the Federal Circuit's explanation in this opinion.

Google's Cross-Appeals

The Federal Circuit rejected Google's appeals from the district court's:
  • Grant of Oracle's motion for JMOL of infringement on eight decompiled security files.
  • Denial of Google's motion for JMOL regarding nine lines of code.
On these points, the Federal Circuit affirmed the district court's decision based on the uncontroverted evidence of Oracle's expert that Google's infringement regarding these files was significant.

Google's Policy-Based Arguments

The Federal Circuit also rejected Google's arguments that the proper way for Oracle to protect its Java APIs is through patent law, not copyright. The Federal Circuit noted that experts and academics are divided on this subject. It held that until the Supreme Court or Congress holds otherwise, it is bound by the Ninth Circuit's decision to afford copyright protection to software.

Practical Implications

The Federal Circuit’s ruling has mixed implications for software industry. While it may be a victory for software developers that rely on copyright protection to control use of their APIs and may encourage innovation, developers seeking to develop compatible software must be mindful of the increased risks of infringing the existing software owner's copyrights. The court's decision leaves open the fair use question which, if decided in Google's favor, may substantially limit the practical effect of the ruling.
Update: On June 29, 2015, the US Supreme Court denied Google's petition for a writ of certiorari, thereby leaving in place the Federal Circuit's ruling that APIs are subject to copyright protection (Google Inc. v. Oracle America Inc., No. 14-410, (S. Ct. June 29, 2015)).