Judge Rules Oracle's Java APIs Not Copyrightable
Written by Sue Gee   
Friday, 01 June 2012

Judge Alsup has delivered his verdict on the issue of whether or not the API packages involved in Oracle's claim of copyright infringement against Google were copyrightable. His ruling is that in this specific case the elements replicated by Google were "free for all to use under the Copyright Act."

Judge Alsup's conclusion: 

Oracle’s claim based on Google’s copying of the 37 API packages, including their structure, sequence and organization is DISMISSED

comes at the end of a 41-page document that has involved a great deal of research and effort, both in terms of legal precedent and in terms of computer science.

The Summary of Ruling section states the principle on which the judgement has been made in a clear and understandable manner:

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.

Later it continues:

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


Each command calls into action a pre-assigned function. The overall name tree, of course, has creative elements but it is also 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.

In a detailed Statement of Findings section we are treated to an overview of Java and Android that wouln't be out of place in a primer on computer programming languages. The following analogy is used to explain the idea of an API:

An API is like a library. Each package is like a bookshelf in the library. Each class is like a book on the shelf. Each method is like a how-to-do-it chapter in a book. Go to the right shelf, select the right book, and open it to the chapter that covers the work you need. As to the 37 packages, the Java and Android libraries are organized in the same basic way but all of the chapters in Android have been written with implementations different from Java but solving the same problems and providing the same functions. Every method and class is specified to carry out precise desired functions and, thus, the “declaration” (or “header”) line of code stating the specifications must be identical to carry out the given function.

In a subsequent section we are treated to an analysis of Java syntax and to the structure of Java methods being a header followed by a block of code responsible for implementation. Classes are then introduced and the judge even presents some commented code, reminding us that he is  no stranger to programming.


alsup william5

U.S. District Judge William Alsup,
Northern District of California


Luckily he is no stranger to law either and the second half of his ruling moves on to look at The Development of the Law on the Copyrightability of Computer Programs and their Structure, Sequence and Organization in an equally comprehensive and comprehendable manner,

The verdict doesn't give carte blanche for riding roughshod over software intellectual property. It states:

This order does not hold that Java API packages are free for all to use without license. It does not hold that the structure, sequence and organization of all computer programs may be stolen. Rather, it holds on the specific facts of this case, the particular elements replicated by Google were free for all to use under the Copyright Act.

Despite having run expenditure estimated at around $50 million on legal costs, Oracle has already stated its intention to appeal, but Judge Alsup has made the chances of an easy overturn of his ruling difficult. One way in which it does this is in pointing out that by stressing the notion of interoperability Oracle is being self-contradictory.




While Judge Alsup's ruling is unlikely to go unchallenged, and at some point in the future we'l see some further writhing on the part of Oracle, for the time being at least the Android ecosystem is safe. Moreover, thanks to this judge, there is a precedent that should make it more difficult to argue copyright infringement of basic computing constructs in the future.

More Information

Ruling (via Groklaw)

Related Articles

Oracle v. Google: Jury finds No Patent Infringement

Oracle v Google Judge Is A Programmer!

Google v Oracle Verdict In - But Future Still Unclear

Oracle v Google - Are Computer Languages Copyrightable?

The Oracle v Google Trial IProgrammer Reads the Patents

To be informed about new articles on I Programmer, subscribe to the RSS feed, follow us on Google+, Twitter, Linkedin or Facebook, install the I Programmer Toolbar or sign up for our weekly newsletter.

raspberry pi books



or email your comment to: comments@i-programmer.info



Visual Studio Adds #include Diagnostics

Microsoft has released Visual Studio 2022 17.9 Preview 5, with minor improvements including the ability to run form under the System account. This is the most recent of four preview versions in a mont [ ... ]

Bun Shell Released

The developers of the Bun JavaScript runtime have released Bun Shell, a new experimental embedded language and interpreter in Bun that lets you run cross-platform shell scripts in JavaScript and TypeS [ ... ]

More News


Last Updated ( Friday, 01 June 2012 )