As predicted here two weeks ago when the jury found that Google’s use of Java declaring code in the Android operating system was a fair use, the presiding judge has rejected Oracle’s motion for a judgment as a matter of law. Oracle argued that no reasonable jury could find against it, but the judge ruled that based on the law of fair use and the trial record, a jury reasonably could have found for either side on the fair use issue. Because the district court’s 20 page order applying fair use jurisprudence to the facts of this case likely will be the focus of Oracle’s inevitable appeal, it is worth examining in some detail.
Before diving into a discussion of the four statutory fair use factors, the district court explained that the jury reasonably could have found that Google’s copying of the declaring code of 37 of the 166 packages of the Java Application Program Interface (API) was justified by the objective of “inter-system consistency.” The Java API contains a library of thousands of pre-written Java source code programs for common functions. Each program is called a method. Each method contains a line of declaring code that specifies the method’s name and defines acceptable inputs and output. The method then contains implementing code that carries out the function. The methods are organized into a hierarchy of classes and packages, referred to as the API’s structure sequence and organization (SSO). Oracle conceded that copyright did not protect the Java language. However, Oracle claimed, and the Federal Circuit found, that copyright protected the declaring code and the SSO. The question before the jury was whether fair use allowed Google to copy the declaring code and the SSO.