Oracle America, Inc. v. Google Inc.

Filing 1009

RESPONSE (re #984 MOTION for Judgment as a Matter of Law Google's Motion for Judgment as a Matter of Law on Sections of Count VIII of Oracle's Amended Complaint ) filed byOracle America, Inc.. (Jacobs, Michael) (Filed on 4/29/2012)

Download PDF
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 MORRISON & FOERSTER LLP MICHAEL A. JACOBS (Bar No. 111664) mjacobs@mofo.com MARC DAVID PETERS (Bar No. 211725) mdpeters@mofo.com DANIEL P. MUINO (Bar No. 209624) dmuino@mofo.com 755 Page Mill Road, Palo Alto, CA 94304-1018 Telephone: (650) 813-5600 / Facsimile: (650) 494-0792 BOIES, SCHILLER & FLEXNER LLP DAVID BOIES (Admitted Pro Hac Vice) dboies@bsfllp.com 333 Main Street, Armonk, NY 10504 Telephone: (914) 749-8200 / Facsimile: (914) 749-8300 STEVEN C. HOLTZMAN (Bar No. 144177) sholtzman@bsfllp.com 1999 Harrison St., Suite 900, Oakland, CA 94612 Telephone: (510) 874-1000 / Facsimile: (510) 874-1460 ORACLE CORPORATION DORIAN DALEY (Bar No. 129049) dorian.daley@oracle.com DEBORAH K. MILLER (Bar No. 95527) deborah.miller@oracle.com MATTHEW M. SARBORARIA (Bar No. 211600) matthew.sarboraria@oracle.com 500 Oracle Parkway, Redwood City, CA 94065 Telephone: (650) 506-5200 / Facsimile: (650) 506-7114 Attorneys for Plaintiff ORACLE AMERICA, INC. 18 UNITED STATES DISTRICT COURT 19 NORTHERN DISTRICT OF CALIFORNIA 20 SAN FRANCISCO DIVISION 21 ORACLE AMERICA, INC. 22 Plaintiff, 23 v. 24 GOOGLE INC. 25 26 27 Defendant. Case No. CV 10-03561 WHA ORACLE AMERICA, INC.’S OPPOSITION TO GOOGLE INC.’S MOTION FOR JUDGMENT AS A MATTER OF LAW ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT Dept.: Courtroom 8, 19th Floor Judge: Honorable William H. Alsup 28 ORACLE’S OPP. TO GOOGLE’S JMOL MOT. ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 1 I. 2 Google’s motion fails to establish that it is entitled to judgment as a matter of law on any INTRODUCTION 3 of the issues on which it has moved. Google ignores evidence in the record that contradicts its 4 claims, on which the jury can rely to find in Oracle’s favor. Google also misconstrues the law on 5 key points, such as Oracle’s entitlement to copyright protection of a collection of names that are 6 sufficiently numerous and original, like the names of the thousands of Java API elements at issue 7 here. 8 Oracle addresses each of Google’s arguments below. 9 II. 10 A. 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 Google’s Implementation Of The 37 Java API Packages In Android Is A Derivative Work Of Oracle’s Specifications Google’s argument that the implementing source code in Android copies only unprotectable ideas from Oracle’s specifications misconstrues Oracle’s derivative works claim. The Android source code not only implements the functions specified in the English descriptions, it also incorporates the structure, sequence, and organization (“SSO”) of the 37 Java API packages as described in the documentation. By copying the SSO and implementing the prose descriptions of the Java API specifications from English text into Java-language code, Google has created a derivative work. 18 19 ARGUMENT Oracle’s derivative works claim is well-supported by Ninth Circuit law. In Micro Star v. Formgen, Inc., 154 F.3d 1107, 1112 (9th Cir. 1998), the seller of new levels for a video game claimed it had not copied any protectable expression from the game’s creator because its level files “reference the source art library, but do not actually contain any art files themselves.” Id. at 1112. The Ninth Circuit disagreed, finding that “[i]n making this argument, Micro Star misconstrues the protected work. The work that Micro Star infringes is the D/N-3D story itself.” Id. Similarly in the present case, Professor Mitchell testified that the narrative in the Oracle API specifications is reflected in the Android source code: “[T]he narrative is reflected in the source code because the source code is a program that in a sense carries out that narrative, does 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 1 1 what the explanation requires for this method.” (RT at 1253:16-18 (Mitchell).) Google’s expert, 2 Dr. Astrachan, acknowledged that the Android source code was “based on the specification.” 3 (RT at 2219:7-18 (Astrachan).) That admission tracks the very definition of a “derivative work” 4 in the Copyright Act: “A ‘derivative work’ is a work based upon one or more preexisting 5 works . . . .” 17 U.S.C. § 101. By copying both the SSO and implementing the described 6 functions, Google has created a work derived from the 37 Java API package documentation. 7 8 9 Oracle’s position on this claim has been consistent. See, e.g., ECF No. 396, Oracle Opp’n to Opp’n to Google MSJ at 6: 12 Android’s Source Code Is Derived From The Copied API Specifications. Google also implemented the copied API specifications into Android source code. Google tries to downplay the significance of this, acknowledging only that it copied the “names of packages and methods and definitions.” (Google Mot. at 16:15-17.) In fact, Google copied the entire hierarchical and organizational structure of the APIs into the Android source code. 13 Even if Google were correct that the steps a single method description requires—like isolated plot 14 elements—are an uncopyrightable idea, Google implemented Oracle’s descriptions thousands of 15 times in the same structure, sequence, and organization in which Oracle wrote them. “[A] claim 16 of copyright infringement can be based on infringement of a combination of unprotected 17 elements.” Dream Games of Ariz., Inc. v. PC Onsite, 561 F.3d 983, 988 (9th Cir. 2009). Oracle 18 has presented substantial evidence that Google derived the structure, sequence, and organization, 19 as well as the meaning, of the code for the Android core libraries from Oracle’s API 20 specifications. Google’s expert Professor Astrachan testified that corresponding elements in Java 21 and Android APIs are structured, sequenced, and organized in the same way: 10 11 22 23 Q. It has to be in the same position in the application programming interface structure, sequence and organization, correct? A. That is correct. 24 25 (RT at 2215:24-2216:2 (Astrachan).) He further testified that the method declarations in the 26 Android code are like the detailed headings in an outline: 27 28 Q. And the method declarations are like the sub-sub-sub-chapter headings in this structure, sequence and organization; correct, sir? ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 2 1 2 3 A. I think that's one analogy that’s reasonable. (RT at 2215:2-5 (Astrachan).) Google copied Oracle’s detailed outline into the Android code. Google’s argument regarding functional requirements for compatibility fails for two 4 reasons. First, Google gets the compatibility argument in Sega Enters. Ltd. v. Accolade, Inc., 5 977 F.2d 1510 (9th Cir. 1992) wrong. The question there was whether a party needed to copy to 6 achieve compatibility. In Sega, the only way for defendant’s programs to run was to copy the 7 manufacturer’s functional interface. See, e.g., Sega, 977 F.2d at 1515 (need to input four letter 8 initialization code). Here, Google could have used the Java language without copying Oracle’s 9 APIs. (RT at 2212:19-2213:16 (Astrachan).) With the exception of a very few classes, the Java 10 APIs are not required to use Java at all. (RT at 684:16-685:2 (Reinhold).) Google could have 11 written its own APIs that provided similar functionality, as Professor Astrachan testified: “it 12 would be possible to provide an API that performed similar functionality; not maybe exactly the 13 same but similar.” (RT at 2213:8-10 (Astrachan).) Google chose to derive its libraries from 14 Oracle’s API specifications instead. 15 Second, Android is not, in fact, compatible with Java. (See TX 383 at 8 (“Q49. Is 16 Android Java compatible? / A. No.”). As Google engineer Dan Bornstein testified, Google did 17 not even attempt full compatibility with the Java platform: 18 19 20 21 22 23 24 Q. Did Android implement all the API packages present in any particular Java Platform? A. No. Q. All right. And why not? A. That wasn’t a goal of the project. The goal of the project was to provide something that was familiar to developers. It wasn’t to provide any particular preexisting set of packages. (RT at 1783:15-22 (Bornstein).) True compatibility with Java would have required Google to incorporate all of the Java API packages, not just some. (RT at 374:4-24 (Kurian).) Accordingly, Google cannot use compatibility to excuse its copying of a select set of Java API packages into Android. 25 26 B. The Names And Declarations Are Protectable As Part Of The Structure, Sequence, And Organization Of The 37 Java API Packages 27 Google moves for judgment as a matter of law that its use of both the names and 28 declarations from the 37 Java API packages is not copyright infringement. Based on the Court’s ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 3 1 prior ruling that individual names are not protectable under the “words and short phrases” 2 doctrine, Google seeks to extend that to declarations as well. Google’s motion should be denied 3 for at least three reasons. 4 First, as explained in Oracle’s comments regarding the Court’s proposed jury instructions 5 (ECF No. 997 at 4-6) and discussed at the April 27, 2012 charging conference, while individual 6 names and short phrases (including short declarations) are not protectable on a stand-alone basis, 7 they are protectable as part of the structure, sequence, and organization (“SSO”) of the 37 API 8 packages. (RT at 2380:14-2381:25.) Oracle is not claiming that Google infringed its copyrights 9 by copying any single name or declaration, but by copying the SSO of the 37 Java API packages 10 which includes the names and declarations. On this point, the Court indicated that it would give 11 the following jury instruction: 12 13 While individual names are not protectable on a stand-alone basis, names must necessarily be used as part of the SSO, and are to that extent protected by copyright. 14 This instruction accurately tracks Oracle’s copyright infringement claim and properly recites the 15 law on “words and short phrases.” (See ECF No. 433 at 7-8 (Court’s prior ruling that 16 “[c]opyright protection for the selection and arrangement of elements within a work is a separate 17 question from whether the elements themselves are protected by copyright”).) Lamps Plus, Inc. 18 v. Seattle Lighting Fixture Co., 345 F.3d 1140, 1147 (9th Cir. 2003) (“a combination of 19 unprotectable elements is eligible for copyright protection only if those elements are numerous 20 enough and their selection and arrangement original enough that their combination constitutes an 21 original work of authorship”); Merch. Transaction Sys. v. Nelcela, Inc., No. CV 02-1954-PHX- 22 MHM, 2009 U.S. Dist. LEXIS 25663, at *49 (D. Ariz. Mar. 17, 2009) (“the Court cannot 23 conclude that no reasonable juror could not find creativity in the selection and arrangement of the 24 Lexcel software’s field names, let alone the remaining allegedly similar non-literal elements of 25 the Lexcel software, sufficient to render the compilation original enough for protection”). 26 As the Court recognized at the charging conference, the SSO of the 37 API packages is 27 manifested in a hierarchy of named packages, classes, methods, interfaces, and fields. (RT at 28 2381:9-12 (“The Court: You’ve got to use symbols in order to have an SSO. It won’t work ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 4 1 otherwise.”).) The SSO also includes the method and class declarations defining those elements. 2 (RT at 604:16-606:4 (Reinhold).) As illustrated below, the named elements and declarations 3 express the SSO. By asking the Court to rule that the declarations are unprotectable, Google is 4 trying to get an indirect ruling that the SSO is unprotectable as well. Compare the following 5 hierarchy from the “java.nio.channels” package – 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 java.nio.channels - Object - Channels Method: newInputStream Declaration: public static InputStream newInputStream (ReadableByteChannel ch) - FileLock - Pipe - SelectionKey - Selector - AbstractInterruptibleChannel - FileChannel - SelectableChannel - AbstractSelectableChannel - DatagramChannel - ServerSocketChannel - SocketChannel – to the same hierarchy with the named elements and declarations removed: ____.___.________ - Object - ________ Method: ______________ Declaration: __________________________________ _____________________ - ________ - ____ - ____________ - ________ - ____________________________ - ___________ - _________________ - ________________________ - _______________ - ___________________ ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 5 1 2 3 4 5 6 7 8 9 10 - _____________ (RT at 594:2-596:22 (Reinhold); TX 1046 at slides 9, 14, 15 (pp. 11, 16, 17 of 24).) Second, while short declarations for methods or classes may not be protectable on a standalone basis, not all of the declarations within the 37 API packages are short. Google points to the simple declaration from the “max” method that Dr. Bloch discussed in his testimony (e.g., “public static int max (int arg1, int arg2)”). (RT at 786:1-787:8 (Bloch).) Many other method and class declarations within the 37 API packages are far longer and more complex. Below are some exemplary longer declarations from the source code:  public abstract void verify(PublicKey key, String sigProvider) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, SignatureException; 11 12 13 14  16 17 18 19 21 22 23 24 25 26 27 In java.net.Authenticator (method declaration): public static PasswordAuthentication requestPasswordAuthentication( String host, InetAddress addr, int port, String protocol, String prompt, String scheme, URL url, RequestorType reqType) { ... 15 20 In java.security.cert.Certificate (method declaration):  In java.nio.channels (class declaration): public abstract class DatagramChannel extends AbstractSelectableChannel implements ByteChannel, ScatteringByteChannel, GatheringByteChannel { (TX 623.) Any one of these declarations is long enough that it may be copyrightable on its own. See Johnson Controls, Inc. v. Phoenix Control Sys., Inc., 886 F.2d 1173, 1175 (9th Cir. 1989) (“Source and object code, the literal components of a program, are consistently held protected by a copyright on the program”). Oracle is not asserting infringement based on Google’s copying of 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 6 1 these declarations alone, but based on copying of the SSO of the 37 Java API packages, inclusive 2 of these declarations. However, there is no legal basis for finding that declarations in general, 3 some of which are quite long, are not protectable. 4 Finally, Google’s argument that the declarations “must remain exactly the same in order 5 to ensure compatibility with Java programs calling on those 37 API packages” is a red herring. 6 Google chose to take the 37 Java API packages because it believed they were the most 7 appropriate for the Android mobile platform. (RT at 1783:23-1785:6 (Bornstein).) Google did 8 not have to take all elements of the 37 packages – Google could have designed its own APIs. (RT 9 at 2212:25-2213:10 (Astrachan).) It chose not to take the time and incur the expense of doing so. 10 The fact that the declarations, once incorporated in the Android platform, must remain the same 11 to ensure that Android applications will run does not excuse Google’s decision to take the API 12 packages in the first instance without a license. Moreover, because Google chose to take only a 13 subset of the full group of Java API packages, Android is actually incompatible with Java, 14 damaging Java’s “write once / run anywhere” promise. (RT at 1007:6-11 (Morrill); 1331:16- 15 1332:2, 2287:23-2288:5 (Mitchell).). 16 17 18 19 For these reasons, Google’s request for a judgment that the declarations are uncopyrightable as “short phrases” should be denied. C. Google’s Literal Copying Is Not De Minimis Google bears the burden of showing that the code it copied was de minimis as compared 20 to the “work as a whole.” See Merch. Transaction Sys., Inc. v. Nelcela, Inc., 2009 U.S. Dist. 21 LEXIS 25663, at *61 (“Thus, Nelcela will not escape liability unless it can show that the 22 protectable elements in the Lexcel software constitute an insignificant (quantitatively and 23 qualitatively) portion or aspect of the Lexcel software.”). But regardless of who bears the burden, 24 Google is not entitled to judgment as a matter of law because Google’s literal copying of Oracle 25 code and comments was not de minimis. 26 “[A] use is de minimis only if the average audience would not recognize the 27 appropriation.” Newton v. Diamond, 388 F.3d 1189, 1193 (9th Cir. 2004). The extent of the 28 copying “is measured by considering the qualitative and quantitative significance of the copied ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 7 1 portion in relation to the plaintiff’s work as a whole.” Id. at 1195. Therefore, even if the copied 2 material is a “quantitatively very small part” of the work as a whole, “[t]he smallness alone is not 3 enough by itself to avoid liability.” Mktg. Tech. Solutions, Inc. v. Medizine LLC, No. 09 Civ. 4 8122 (LMM), 2010 U.S. Dist. LEXIS 50027, at *9 (S.D.N.Y. Apr. 23, 2010). 5 Google’s argument depends on comparing the copied contents from each file to the J2SE 6 platform in its entirety. Such a frame of reference would allow plagiarists to copy entire 7 computer files, as Google did here, and escape liability simply by claiming what they copied 8 came from a large body of code. The Court has already rejected this argument and has stated in 9 its proposed instructions that the “work as a whole” is the individual file from which the code was 10 copied. During trial, Professor Mitchell testified that Google literally copied qualitatively and/or 11 quantitatively significant portions of the copyrighted works. Google presented little evidence to 12 rebut this testimony. In fact, Google’s copyright expert, Dr. Astrachan, provided no testimony 13 about the literally copied files. As a result, a reasonable jury could find that Google’s copying 14 was not de minimis. 15 16 17 18 19 20 21 22 1. The “Work As A Whole” Is The Individual File From Which The Code Was Copied, Not The Entire J2SE Platform. Google argues that its code copying should be compared to the entire Java platform because Oracle registered it as a single work. The Court rejected this argument at the charging conference and stated that it would instruct the jury to compare the compilable code Google literally copied to the compilable code in the computer file from which it was copied. (RT at 2416:10-2418:17.) 2. Google’s Copying Of Eight Decompiled Files Was Not De Minimis. 23 Professor Mitchell explained that Google decompiled eight Java files and copied the 24 decompiled source code into certain Android files. (RT at 1258:7-1259:15 (Mitchell).) He 25 presented a side-by-side comparison between a decompiled version of Oracle’s 26 PolicyNodeImpl.class file (TX 896.1) and Android’s PolicyNodeImpl.java file (TX 1031). (RT 27 at 1259:16-25 (Mitchell).) He also confirmed that Android contains decompiled versions of 28 Oracle’s PolicyNodeImpl.class, AclEntryImpl.class, AclImpl.class, GroupImpl.class, ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 8 1 PermissionImpl.class, PrincipalImpl.class, AclEnumeratorImpl.class. (RT at 1259:16-25; 1260:5- 2 18.) 3 Once put into the proper frame of reference for comparison (file-to-file), it is clear that 4 Google’s copying of the eight decompiled files was not de minimis. Google copied each entire 5 file, so by definition, the copied code is both quantitatively and qualitatively significant to the file 6 it came from. No reasonable jury could find otherwise. 7 Google did not challenge this testimony at the trial. Although Oracle was not required to 8 prove anything further, the decompiled code is also qualitatively significant beyond its 9 significance to the file. The eight Oracle files concern the security governing access to files in a 10 network. Dr. Mitchell testified that “They have to do with access control lists, which are a 11 standard mechanism in computer security to govern access to a file or a network or other 12 resource.” (RT 1329:22-1330:5.) Google did not challenge this testimony. While Google has 13 claimed in the past that these files were simply “test files” for Google, Google did not present 14 evidence at trial that these were test files except to note that the file paths for these files contain 15 the word “test.” (RT 1319:1-3.) Dr. Mitchell testified that they are not test files as used by 16 Oracle. (RT 1330:6-11.) In addition, the possibility that the corresponding Android files might 17 be test files in no way decreases their value. Companies invest significant time and money into 18 testing because it is important to ship their devices bug-free and thus these test files could have 19 had a “big value” for Google as well. (RT 1330:6-1331:5.) 20 21 22 23 24 25 26 27 28 3. Google’s Copying Of The RangeCheck Method Was Not De Minimis. Professor Mitchell testified that the rangeCheck method is qualitatively significant and “useful” to Android. (RT at 1316:17-19.) He explained that the rangeCheck method operates on Android devices, including on Samsung phones. (RT at 1255:22-25, 1264:19-23 (Mitchell).) To determine how useful the rangeCheck method is on devices, Professor Mitchell experimented with an Android device and found that it called the rangeCheck method no less than 2,600 times during start up: Q. Did you conduct an analysis of the significance of rangeCheck to other code in the same class file? ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 9 1 2 3 4 5 6 7 8 9 10 11 12 13 A. Yes. Q. What did you conclude? A. I found a number of other source code in other files that called that function. And, also, I did an experiment with the phone source code instrumented, and counted the number of times that rangeCheck was called in starting up the phone. And I found that it's called 2600 times just in powering on the device or starting the emulator. (RT 1329:9-21.) Google did not present any testimony to rebut this. Google selectively quotes from Professor Mitchell’s testimony to try to trivialize the rangeCheck method. (ECF No. 984 at 5 (“Dr. Mitchell conceded that ‘a good high school programmer’ could write rangeCheck.”).) But Professor Mitchell actually testified that “a good high school programmer or graduate student, if told exactly what was needed, could write the code.” (RT at 1316:24-25 (emphasis added).) The “code has some subtlety” and “the interesting part is figuring out exactly what you wanted the function to do, more than realizing that function in Java code once that’s understood.” (RT at 1317:1-5.) The method might seem “[v]ery, very simple” to Dr. Bloch, who originally wrote the code while he was working at Sun, but other programmers might not find the method so simple to write. (RT 815:13-16; see also 755:6-8.) 14 15 16 17 18 19 20 21 22 23 24 25 26 27 4. Google’s Copying Of Comments Was Not De Minimis Professor Mitchell compared Oracle’s CodeSource.java file (TX 623.9) against Android’s CodeSourceTest.java file (TX 1039) and concluded that except for some HTML commands, certain English-language comments are “syntactically . . . identical.” (RT 1262:13-1263:4.) He also testified that Android’s CollectionCertStoreParametersTest.java (TX 1040) contained the “same kind of comment copying” from Oracle’s CollectionCertStoreParameters.java (TX 623.10). (RT 1253:9-10.) Comments in computer programs are protected from copying under copyright law because they are expressive. See, e.g., Brocade Commc’ns Sys. v. A10 Networks,, Inc., No. 10-CV-03428LHK, 2011 U.S. Dist. LEXIS 91384, at *7-8 (N.D. Cal. Aug. 16, 2011) (because comments are “the equivalent of explanatory asides, they are likely capable of being expressed in many different ways and therefore may be protectable expression”); Szen Corp. v. Anderson, No. CV-06-5073FVS, 2007 U.S. Dist. LEXIS 42716, at *4 (E.D. Wash. June 13, 2007) (noting “the absence of precedent indicating that names and programmer comments in source code are not protected 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 10 1 elements”). The literally copied comments are quantitatively significant. They amount to about 2 25% of Oracle’s CollectionCertStoreParameters.java file (31 lines out of 124 lines in the file). 3 (TX 623.10.) They also amount to about 2.90% of Oracle’s CodeSource.java file (18 lines out of 4 621 lines in the file). (TX 623.9.) The literally copied comments are also qualitatively 5 significant, because they “give some guidance to programmers reading source code” and help 6 them understand the code. (RT at 1317:21-25). 7 Google presented no evidence to rebut the showing that the comments are both 8 qualitatively and quantitatively significant in relation to the individual source code files, and is 9 therefore not entitled to judgment as a matter of law. 10 11 12 13 14 15 16 17 18 D. The Android Documentation Infringes Oracle’s Copyrights Google asks the court to dismiss Oracle’s allegations that the Android documentation copies both the English-language descriptions and the SSO from Oracle’s Java documentation. As Oracle has presented substantial evidence showing both types of copying in Android documentation, judgment as a matter of law is unwarranted. 1. The Evidence Shows That Android’s English-Language Descriptions Were Copied From The Java API Specifications. Google suggests that Oracle’s evidence of English-description copying is limited to three examples. Not so. Android developer Bob Lee testified regarding three examples shown to him, 19 20 but he acknowledged that the same level of similarity shown in those examples exists across the 21 complete documentation for the 37 Java API packages within Android. (RT at 1175:25-1176:3 22 (Lee).) Mr. Lee admitted that the English-descriptions in Android were re-written from Sun’s 23 documentation and were therefore “substantially similar.” (RT at 1191:4-13.) Indeed, he even 24 expressed regret that such re-writing had occurred: 25 26 I actually wasn't even a big fan of including these. I would have preferred that we just point people to Sun’s site for this specific documentation because you shouldn't really be rewriting a contract. And in doing so they are going to be substantially similar. 27 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 11 1 (Id.) Mr. Lee’s testimony alone is sufficient evidentiary basis for the jury to conclude that 2 Google had substantially copied the English-descriptions into the Android documentation. 3 The full Android and Java documentation were admitted into the record, so the jury will 4 be able to compare the two. (TX 610.2, 767.) Dr. Mitchell testified to the process he used to 5 compare the full set of specifications for both the Java and Android APIs: 6 7 8 9 10 Because the APIs in both cases are available on the web, it’s fairly straightforward to open two web browsers side by side and navigate through the two APIs and libraries simultaneously in the same way and compare the way one looks on the screen with the other. By and large, that – they are really identical. They are displayed in different colors and so on. But the content is the same. You see the same classes in the same hierarchy in the same – in packages of the same name supporting the same interfaces and arranged in – in the same way. 11 (RT at 1244:17-1246:3 (Mitchell).) Contrary to Google’s suggestion, Professor Mitchell did not 12 merely say that the two sets of documents expressed the same idea – he testified that he compared 13 “the way one looks on the screen with the other” and concluded they are largely identical. (Id.) 14 Professor Mitchell further testified: “I don't think there’s any way that a separate team could have 15 come up with so many things that are identical except by copying the original API. There are just 16 thousands of things that match and I don’t see how that could have happened in any other way 17 than by copying.” (RT 1249:18-25 (Mitchell).) This testimony, taken together with Mr. Lee’s 18 testimony, supports Oracle’s position that the English-descriptions were copied. 19 With respect to the three specific examples used with Mr. Lee, Google argues that no 20 reasonable jury could find these are substantially similar. But this is a factual question ideally- 21 suited for jury determination. See Apple Computer v. Microsoft Corp., 35 F.3d 1435, 1446 (9th 22 Cir. Cal. 1994). It requires no special legal or technical skill to compare the English-descriptions 23 and determine if they are substantially similar. With Mr. Lee’s testimony that the English- 24 descriptions in the Android documentation were re-written from the Java documentation, a 25 reasonable jury could conclude that the descriptions were copied. The three specific examples are 26 reproduced below (comparing TX 610.2 with TX 767): 27 J2SE 5.0 Android 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 12 1 5 In order to create a Cipher object, the application calls the Cipher’s get-instance method, and passes the name of the requested transformation to it. This class provides access to implementations of cryptographic ciphers for encryption and decryption. Cipher classes can not be instantiated directly, one has to call the Cipher's getInstance method with the name of a requested transformation, optionally with a provider. 6 … ... 7 When requesting a block cipher in stream cipher mode (e.g., DES in CFB or OFB mode), the user may optionally specify the number of bits to be processed at a time, by appending this number to the mode name as shown in the "DES/CFB8/NoPadding" and "DES/OFB32/PKCS5Padding" transformations. If no such number is specified, a provider-specific default is used When a block cipher is requested in stream cipher mode, the number of bits to be processed at a time can be optionally specified by appending it to the mode name. e.g. "AES/CFB8/NoPadding". If no number is specified, a provider specific default value is used. 13 J2SE 5.0 Android 14 A pair of channels that implements a unidirectional pipe. A pipe contains two channels, forming a unidirectional pipe. One is the writable sink channel, and the other is the readable source channel. When bytes are written into the writable channel they can be read from the readable channel. Bytes are read in the order in which they were written. 2 3 4 8 9 10 11 12 15 16 17 18 This class provides the functionality of a cryptographic Cipher for encryption and decryption. A pipe consists of a pair of channels: A writable sink channel and a readable source channel. Once some bytes are written to the sink channel they can be read from source channel in exactly the order in which they were written. 19 J2SE 5.0 Android 20 A CipherInputStream is composed of an InputStream and a Cipher so that read() methods return data that are read in from the underlying InputStream but have been additionally processed by the Cipher. The Cipher must be fully initialized before being used by a CipherInputStream. This class wraps an InputStream and a cipher so that read() methods return data that are read from the underlying InputStream and processed by the cipher. 21 22 23 24 25 The cipher must be initialized for the requested operation before being used by a CipherInputStream. Oracle has presented sufficient evidence for the jury to determine that the English- 26 descriptions in the Android documentation were copied from the Java documentation. 27 Accordingly, Google cannot be entitled to judgment as a matter of law on this issue. 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 13 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2. Evidence Also Shows That Google Copied The SSO Of The Java API Packages From Java Documentation Into Android Documentation Google admits that the SSO of the 37 Java API packages as expressed in the Android documentation is identical to the SSO expressed in the Java documentation. (ECF 984 at 10.) Google argues that Oracle’s claim for SSO copying into the Android documentation should be dismissed because it purportedly overlaps with Oracle’s claim for SSO copying into the Android code. But Google is liable for copying the SSO into the Android documentation as well and Oracle is entitled to a judgment on that claim. There is no question that Google has copied the SSO of the 37 Java API packages into the Android documentation. As explained by Dr. Reinhold, the structure expressed in the API documentation is the same as the structure within the compilable code because the code is run through the Java Documentation Extractor (or “Javadoc”) to pull out the structure and English language comments, and produce a webpage that reflects the same SSO of the API that is in the code. (RT at 606:14-608:3 (Reinhold); TX 1046 at p.19 of 24.) The Android documentation is created the same way from the Android code. (RT at 1169:8-15 (Lee agreeing that like Java documentation, Android documentation was “created by a tool that actually reads portions of the source code and then places it in a kind of template that’s available on the web as a source of documentation.”)) It is undisputed that the SSO of the 37 Java API packages is found, identically, in both the Java and Android code and documentation. (ECF 984 at 10 (Google’s JMOL motion: “As such, if based on the same starting point – the names of the 37 API packages at issue – the structure, sequence, and organization of the Android and Java documentation inevitably will be the same”).) Regardless of whether the SSO is expressed in the compilable code or the API documentation, it is protectable expression in both cases. In Am. Dental Ass’n v. Delta Dental Plans Ass’n, Judge Easterbrook found that the structure of dental code which organized various dental procedures into a hierarchy represented in three formats – numerically, by short description, and by long description – was equally protectable regardless of which format was 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 14 1 copied. 126 F.3d 977, 979, 980-981 (7th Cir. 1997) (“The long description is part of the 2 copyrighted work, and original long descriptions make the work as a whole copyrightable. But 3 we think that even the short description and the number are original works of authorship.”). The 4 infringer copied “most of the numbering system and short descriptions from the ADA’s Code,” 5 and the Court did not distinguish one format from the other. It explained that taxonomies, such as 6 the West Key Number System and the dental code, are not “systems” and are protectable as 7 expression. 126 F.3d at 978 (7th Cir. 1997) (noting that “[b]lueprints for large buildings (more 8 committee work), instruction manuals for repairing automobiles, used car value guides, 9 dictionaries, encyclopedias, maps” are protectable original expression). Analogously, if the SSO 10 of the 37 Java API packages is protectable as expressed in source code, it is also protectable as 11 expressed in the API documentation. Far less creative structures have been found subject to 12 copyright protection in this Circuit. Courts in this Circuit have repeatedly extended copyright 13 protection to structure expressed in written documentation. See, e.g., CDN Inc. v. Kapes, 197 14 F.3d 1256, 1262 (9th Cir. 1999) (prices in guide for collectible coins); Practice Mmgt. Info. Corp. 15 v. Am. Med. Ass’n, 877 F. Supp. 1386, 1390-92 (C.D. Cal. 1994), aff’d in relevant part, 121 F.3d 16 516 (9th Cir. 1997) (numerical codes for medical procedures); Jacobsen v. Katzer, 2009 U.S. 17 Dist. LEXIS 115204, at *9-10 (N.D. Cal. Dec. 10, 2009) (text files reflecting decoder information 18 from model railroad manufacturers). 19 The evidence shows that Google copied the SSO of the 37 Java API packages into both 20 the Android compilable code and documentation. Oracle is entitled to a judgment on both forms 21 of copying. Google’s motion for judgment as a matter of law on this point should be denied. 22 23 24 25 26 27 28 E. Google Incorrectly Claims That Oracle Failed To Prove The Contents Of The Copyrighted Works. Google also raises the hyper-technical challenge that Oracle “has not offered any proof of the actual contents of the works that are the subject of its copyright registrations.” (ECF No. 984 at 10-11). Google’s challenge is baseless. First, Oracle submitted the copyright registrations, which claim on their face to cover “Java 2 Standard Edition 1.4” and “Java 2 Standard Edition, Version 5.0” (TX 464, 475, 476), ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 15 1 and authenticated and submitted into evidence the full contents of both these versions of the 2 platform. (TR 689:21-691:23, TX 622, 623.) Oracle is entitled to a presumption that the facts 3 stated on the front of the copyright registration are correct. Section 410(c) of the Copyright Act 4 provides that the certificate of registration “shall constitute prima facie evidence of the validity of 5 the copyright and of the facts stated in the certificate.” 17 U.S.C. § 410(c). Google accordingly 6 “has the burden of rebutting the facts set forth in the copyright certificate.” United Fabrics 7 International, Inc. v. C&J Wear, Inc., 630 F.3d 1255, 1257 (9th Cir. 2011). Google has 8 submitted no evidence whatsoever showing that the registrations cover anything other than what 9 they purport to claim, or that the registered code differs from what was identified at trial. 10 Second, because Google insisted on pursuing this issue, Oracle submitted additional 11 evidence of the content of the registrations. Chief Java Architect Mark Reinhold testified that the 12 written source code deposit that accompanied the certified copy of the registration for J2 SE 13 version 1.4 ― which he wrote ― does in fact correspond to the source code for J2 SE version 14 1.4. (TR 2233:18-2234:19, TX 3530). He similarly testified that the written source code deposit 15 included with the certified copy of the registration for J2 SE version 5.0 represented part of the 16 source code for version 5.0, and that the CD-ROM entered into evidence as Exhibit 1076 is a 17 copy of the binary code for version 5.0 along with the documentation and other tools. (TR 18 2234:20-2238:19, TX 3529). The loop on Exhibit 1076 was closed when Oracle attorney Tiki 19 Dare authenticated the transmittal letter and accompanying documentation that was transmitted to 20 the Copyright Office along with Exhibit 1076 when registering version 5.0. (TR 2257:5-2267:2, 21 TX 1077, 1078, 1081). Again, Google has not submitted any evidence showing that this evidence 22 is incorrect, and certainly is not entitled to judgment as a matter of law. 23 24 F. Google’s Challenge To Authorship Was Predicated On The Court’s Acceptance Of The Copyrighted Works As “Collective Works” And Is Now Moot 25 Google’s motion argued that the copyrighted works should not be considered to be 26 collective works and, as an alternative argument, raised a challenge to authorship in the event the 27 works were deemed to be collective works: 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 16 1 2 3 4 5 6 7 8 9 In sum, if the Court accepts Oracle’s “collective work” argument, then Google is entitled to judgment as a matter of law of non-infringement of each of the component parts of the registered works, because Oracle has not proved authorship of the constituent elements. (ECF No. 984 at 12. See also id. at 11 (“If, however, the Court accepts Oracle’s ‘collective work’ argument, then Google is entitled to judgment as a matter of law of non-infringement of each of the component parts of the registered works, because Oracle has not proved authorship of the constitutent elements.”) Oracle has withdrawn the characterization of the registered works as “collective works,” in part in response to Google’s complaint. (See TR 2134:11-17, 2134:7-11). Accordingly this argument is now moot. 10 11 12 III. CONCLUSION Google has not shown that it is entitled to judgment as a matter of law on any of the issues on which it has moved. For all the above reasons, Google’s motion should be denied. 13 14 15 16 17 18 19 Dated: April 29, 2012 MICHAEL A. JACOBS MARC DAVID PETERS DANIEL P. MUINO MORRISON & FOERSTER LLP By: /s/ Michael A. Jacobs Michael A. Jacobs Attorneys for Plaintiff ORACLE AMERICA, INC. 20 21 22 23 24 25 26 27 28 ORACLE’S OPP. TO GOOGLE’S JMOL ON SECTIONS OF COUNT VIII OF ORACLE’S AMENDED COMPLAINT CASE NO. CV 10-03561 WHA pa-1526219 17

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?