Oracle America, Inc. v. Google Inc.

872 F. Supp. 2d 974, 103 U.S.P.Q. 2d (BNA) 1023, 2012 WL 1965778, 2012 U.S. Dist. LEXIS 75896
District Court, N.D. California·Decided May 31, 2012·No. No. C 10-03561 WHA·Published·Cited by 12 cases

Opinion

ORDER RE COPYRIGHTABILITY OF CERTAIN REPLICATED ELEMENTS OF THE JAVA APPLICATION PROGRAMMING INTERFACE

WILLIAM ALSUP, District Judge.

INTRODUCTION

This action was the first of the so-called “smartphone war” cases tried to a jury. This order includes the findings of fact and conclusions of law on a central question tried simultaneously to the judge, namely the extent to which, if at all, certain replicated elements of the structure, sequence and organization of the Java application programming interface are protected by copyright.

PROCEDURAL HISTORY

In 2007, Google Inc., announced its Android software platform for mobile devices. In 2010, Oracle Corporation acquired Sun Microsystems, Inc., and thus acquired Sun’s interest in the popular programming language known as Java, a language used in Android. Sun was renamed Oracle America, Inc. Shortly thereafter, Oracle America (hereinafter simply “Oracle”) sued defendant Google and accused its Android platform as infringing Oracle’s Java-related copyrights and patents.

Both Java and Android are complex platforms. Both include “virtual machines,” development and testing kits, and application programming interfaces, also known as APIs. Oracle’s copyright claim involves 37 packages in the Java API. Copyrightability of the elements replicated is the only issue addressed by this order.

Due to complexity, the Court decided that the jury (and the judge) would best understand the issues if the trial was conducted in phases. The first phase covered copyrightability and copyright infringement as well as equitable defenses. The second phase covered patent infringement. The third phase would have dealt with damages but was obviated by stipulation and verdicts.

For the first phase, it was agreed that the judge would decide issues of copyright-ability and Google’s equitable defenses and that the jury would decide infringement, fair use, and whether any copying was de minimis. Significantly, all agreed that Google had not literally copied the software but had instead come up with its own implementations of the 37 API packages. Oracle’s central claim, rather, was that Google had replicated the structure, sequence and organization of the overall code for the 37 API packages.

For their task of determining infringement and fair use, the jury was told it should take for granted that the structure, sequence and organization of the 37 API packages as a whole was copyrightable. This, however, was not a final definitive legal ruling. One reason for this instruction was so that if the judge ultimately ruled, after hearing the phase one evidence, that the structure, sequence and organization in question was not protectable but was later reversed in this regard, the court of appeals might simply reinstate the jury verdict. In this way, the court of appeals would have a wider range of alternatives without having to worry about an [976]*976expensive retrial. Counsel were so informed but not the jury.

Each side was given seventeen hours of “air time” for phase one evidence (not counting openings, closings or motion practice). In phase one, as stated, the parties presented evidence on copyright-ability, infringement, fair use, and the equitable defenses. As to the compilable code for the 37 Java API packages, the jury found that Google infringed but deadlocked on the follow-on question of whether the use was protected by fair use. As to the documentation for the 37 Java API packages, the jury found no infringement. As to certain small snippets of code, the jury found only one was infringing, namely, the nine lines of code called “range-Check.” In phase two, the jury found no patent infringement across the board. (Those patents, it should be noted, had nothing to do with the subject addressed by this order.) The entire jury portion of the trial lasted six weeks.1

This order addresses and resolves the core premise of the main copyright claims, namely, whether the elements replicated by Google from the Java system were protectable by copyright in the first place. No law is directly on point. This order relies on general principles of copyright law announced by Congress, the Supreme Court and the Ninth Circuit.

Counsel on both sides have supplied excellent briefing and the Court wishes to recognize their extraordinary effort and to thank counsel, including those behind the scenes burning midnight oil in law libraries, for their assistance.

SUMMARY OF RULING

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. It does not matter that the declaration or method header lines are identical. Under the rules of Java, they must be identical to declare a method specifying the same functionality' — even when the implementation is different. When there is only one way to express an idea or function, then everyone is free to do so and no one can monopolize that expression. And, while the Android method and class names could have been different from the names of their counterparts in Java and still have worked, copyright protection never extends to names or short phrases as a matter of law.

It is true that the very same functionality could have been offered in Android without duplicating the exact command structure used in Java. This could have been done by re-arranging the various methods under different groupings among the various classes and packages (even if the same names had been used). In this sense, there were many ways to group the methods yet still duplicate the same range of functionality.

But the names are more than just names — they are symbols in a command structure wherein the commands take the form

java.package.Class.method()

Each command calls into action a preassigned function. The overall name tree, of course, has creative elements but it is [977]*977also a precise command structure' — a utilitarian and functional set of symbols, each to carry out a pre-assigned function. This command structure is a system or method of operation under Section 102(b) of the Copyright Act and, therefore, cannot be copyrighted. Duplication of the command structure is necessary for interoperability.

STATEMENT OF FINDINGS

1. Java and Android.

Java was developed by Sun, first released in 1996, and has become one of the world’s most popular programming languages and platforms.2 The Java platform, through the use of a virtual machine, enables software developers to write programs that are able to run on different types of computer hardware without having to rewrite them for each different type. Programs that run on the Java platform are written in the Java language. Java was developed to run on desktop computers and enterprise servers.3

The Java language, like C and C + +, is a human-readable language. Code written in a human-readable language — “source code” — is not readable by computer hardware. Only “object code,” which is not human-readable, can be used by computers. Most object code is in a binary language, meaning it consists entirely of Os and Is.

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

Oracle America, Inc. v. Google Inc., 872 F. Supp. 2d 974, 103 U.S.P.Q. 2d (BNA) 1023, 2012 WL 1965778, 2012 U.S. Dist. LEXIS 75896 (N.D. Cal. 2012).

872 F. Supp. 2d 974 (Oracle America, Inc. v. Google Inc.) — published by Counsel Stack Legal Research, free access to 12M+ legal documents.

Related