Oracle America, Inc. v. Google Inc.

Filing 1168

Amended MOTION for Judgment as a Matter of Law ORACLE AMERICA, INC.S RULE 50(A) MOTION AT THE CLOSE OF ALL EVIDENCE FOR PHASE II (PATENT PHASE)--REPLACES [DKT 1167] filed by Oracle America, Inc.. Responses due by 5/17/2012. (Jacobs, Michael) (Filed on 5/16/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 KENNETH A. KUWAYTI (Bar No. 145384) kkuwayti@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 19 UNITED STATES DISTRICT COURT 20 NORTHERN DISTRICT OF CALIFORNIA 21 SAN FRANCISCO DIVISION 22 ORACLE AMERICA, INC. 23 Plaintiff, ORACLE AMERICA, INC.’S RULE 50(A) MOTION AT THE CLOSE OF ALL EVIDENCE FOR PHASE II (PATENT PHASE) Defendant. Dept.: Courtroom 8, 19th Floor Judge: Honorable William H. Alsup 24 v. 25 Case No. CV 10-03561 WHA GOOGLE INC. 26 27 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 1 TABLE OF CONTENTS 2 Page 3 I. INTRODUCTION .............................................................................................................. 1 4 II. LEGAL STANDARD FOR JUDGMENT AS A MATTER OF LAW .............................. 1 5 III. NO REASONABLE JURY COULD FIND THAT GOOGLE DID NOT INFRINGE THE ASSERTED CLAIMS OF THE ’104 PATENT .................................... 2 6 7 A. Android’s Resolve.c infringes claims 11, 39, 40, and 41 of the ’104 patent because Dalvik bytecode instructions contain symbolic references ....................... 2 8 1. A field index is a symbolic reference that is contained in a Dalvik bytecode instruction .................................................................................... 2 2. The data that is obtained is the “data” that determines whether a reference is symbolic or numeric, not the constant pool information used to perform symbolic reference resolution ........................................... 5 3. Conversion of instruction stream indices to numeric memory locations confirms that the indices are symbolic reference— numeric references are not resolved ............................................................ 7 9 10 11 12 13 B. Android dexopt infringes claims 27 and 29 of the ’104 patent ............................... 8 C. Under the correct claim construction, dexopt resolves symbolic references “dynamically rather than statically” ........................................................................ 9 14 15 16 IV. NO REASONABLE JURY COULD FIND THAT GOOGLE DID NOT INFRINGE THE ASSERTED CLAIMS OF THE ’520 PATENT .................................. 12 17 A. ’520 Patent Background ........................................................................................ 12 B. 19 Android’s dx Tool Simulates Execution Of Bytecodes To Identify The Static Initialization Of Arrays ............................................................................... 13 20 1. Dr. Mitchell’s Analysis ............................................................................. 13 21 2. Dr. Parr Sought To Read Additional Limitations Into The Claim Language ................................................................................................... 15 18 22 V. GOOGLE’S EQUITABLE DEFENSES FAIL................................................................. 16 23 A. Additional Facts Relevant to Google’s Equitable Defenses ................................. 16 B. Google Has Not Shown that Equitable Estoppel Bars Oracle’s Patent Infringement Claims.............................................................................................. 20 C. Google Has Not Shown that the Doctrine of Laches Applies to Oracle’s Patent Infringement Claims................................................................................... 21 D. Google Has Not Shown that Oracle or Sun Waived Its Right to Assert Patent Infringement Claims................................................................................... 22 24 25 26 27 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA i 1 TABLE OF CONTENTS (continued) 2 Page E. 3 Google Has Not Shown that Oracle or Sun Gave It an Implied License to Use Oracle’s Patents ............................................................................................. 23 4 5 VI. ALTERNATIVE GOOGLE DEFENSES THAT GOOGLE PLED BUT DID NOT PRESENT TO THE JURY FAIL ..................................................................................... 24 6 A. Google Has Not Shown Patent Misuse, Use by the United States, or Unclean Hands ...................................................................................................... 24 B. Google Has Not Shown that Oracle or Sun Gave It an Express License to Use Oracle’s Patents ............................................................................................. 24 7 8 9 VII. CONCLUSION ................................................................................................................. 24 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA ii 1 TABLE OF AUTHORITIES 2 Page(s) 3 CASES 4 A.C. Aukerman Co. v. R.L. Chaides Const. Co., 960 F.2d 1020 (Fed. Cir. 1992) (en banc)......................................................................... 21, 22 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Adidas-Am., Inc. v. Payless Shoesource, Inc., 546 F. Supp. 2d 1029 (D. Or. 2008) ....................................................................................... 22 Carborundum Co. v. Molten Metal Equip. Innovations, 72 F.3d 872 (Fed. Cir. 1995) ................................................................................................... 24 Carpet Seaming Tape Licensing Corp. v. Best Seam, Inc., 694 F.2d 570 (9th Cir. 1982)................................................................................................... 21 Dream Games of Ariz., Inc. v. PC Onsite, 561 F.3d 983 (9th Cir. 2009)................................................................................................... 24 Forrett v. Richardson, 112 F.3d 416 (9th Cir. 1997)..................................................................................................... 1 Gasser Chair Co. v. Infanti Chair Mfg. Corp., 60 F.3d 770 (Fed. Cir. 1995) ................................................................................................... 20 Geo M. Martin Co. v. Alliance Mach. Sys. Int’l LLC, 618 F.3d 1294 (Fed. Cir. 2010) ................................................................................................. 2 In re Katz Interactive Call Processing Patent Litig., 712 F. Supp. 2d 1080 (C.D. Cal. 2010) .................................................................................. 22 Jacobs v. Nintendo of Am., Inc., 370 F.3d 1097 (Fed. Cir. 2004) ............................................................................................... 23 Lucent Techs., Inc. v. Gateway, Inc., 580 F. Supp. 2d 1016 (S.D. Cal. 2008) ................................................................................... 22 Qualcomm Inc. v. Broadcom Corp., 548 F.3d 1004 (Fed. Cir. 2008) ......................................................................................... 22, 23 23 24 25 26 27 U.S. v. Amwest Surety Ins. Co., 54 F.3d 601 (9th Cir.1995)...................................................................................................... 23 Wang Labs., Inc. v. Mitsubishi Elecs. Am., Inc., 103 F.3d 1571 (Fed. Cir. 1997) ............................................................................................... 23 White v. Ford Motor Co., 312 F.3d 998 (9th Cir. 2002)................................................................................................. 1, 2 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 iii 1 2 3 4 5 Winn v. Opryland Music Group, Inc., 22 Fed. Appx. 728 (9th Cir. 2001) .......................................................................................... 22 Zenith Elecs. Corp. v. PDI Commc’ns Sys., 522 F.3d 1348 (Fed. Cir. 2008) ............................................................................................... 23 STATUTES Fed. R. Civ. P. 50(a)(1) ................................................................................................................... 1 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 iv 1 I. INTRODUCTION Google infringes Claims 11, 27, 29, 39, 40, and 41 of United States Patent No. RE38,104 2 3 (“the ’104 patent”) and Claims 1 and 20 of United States Patent No. 6,061,520 (“the ’520 4 patent”). Google infringes the ’104 patent in two ways: the Resolve.c resolution functions that 5 are part of the Dalvik Virtual Machine infringe Claims 11, 39, 40, and 41 and the dexopt tool that 6 is also part of the Dalvik VM infringes Claims 27 and 29. Google infringes the ’520 through the 7 operation of the dx tool, which is part of the Android SDK used by developers. Given the 8 evidence in the record, Google’s patent infringement can be determined as a matter of law, as no 9 reasonable jury could find for Google.1 Google’s indirect infringement can be determined as a matter of law along with direct 10 11 infringement. The parties stipulated that indirect infringement (induced and contributory 12 infringement) shall follow from a finding of direct infringement and need not be submitted to the 13 jury. ECF No. 1139. In finding direct infringement as a matter of law, the Court by extension 14 should also find indirect infringement by Google. Google failed to meet its burden of proving its equitable defenses and either failed to 15 16 preserve or present evidence on other affirmative defenses. For these reasons, Oracle is entitled to judgment as a matter of law. 17 18 II. LEGAL STANDARD FOR JUDGMENT AS A MATTER OF LAW Judgment as a matter of law is appropriate when “a party has been fully heard on an issue 19 20 during a jury trial and the court finds that a reasonable jury would not have a legally sufficient 21 evidentiary basis to find for the party on that issue.” Fed. R. Civ. P. 50(a)(1). In the Ninth 22 Circuit, “[t]he test is whether ‘the evidence, construed in the light most favorable to the 23 nonmoving party, permits only one reasonable conclusion, and that conclusion is contrary to that 24 of the jury.’” White v. Ford Motor Co., 312 F.3d 998, 1010 (9th Cir. 2002) (quoting Forrett v. 25 Richardson, 112 F.3d 416, 419 (9th Cir. 1997)). The Federal Circuit applies the law of the 26 1 27 28 Depending on the type of claim, Google directly infringes by installing code on devices, running the devices, or developing applications. Because these elements of the claims were not disputed, Oracle does not address this aspect of direct infringement. ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 1 1 regional circuit when reviewing a district court’s grant of judgment as a matter of law in patent 2 actions. Geo M. Martin Co. v. Alliance Mach. Sys. Int’l LLC, 618 F.3d 1294, 1300 (Fed. Cir. 3 2010) (citing White). 4 III. 5 NO REASONABLE JURY COULD FIND THAT GOOGLE DID NOT INFRINGE THE ASSERTED CLAIMS OF THE ’104 PATENT The record evidence proves as a matter of law that (1) Android’s Resolve.c infringes 6 claims 11, 39, 40, and 41 of the ’104 patent and that (2) Android dexopt infringes claims 27 and 7 29 of the ’104 patent. No reasonable jury could find otherwise. 8 9 A. Android’s Resolve.c infringes claims 11, 39, 40, and 41 of the ’104 patent because Dalvik bytecode instructions contain symbolic references 10 The only dispute with respect to infringement by Android’s Resolve.c is whether Dalvik 11 bytecode instructions contain “symbolic references.” RT 4106:21-22 (Jacobs); 4154:6-11 (Van 12 Nest). Android source code and documentation, as well as the experts’ and Google engineers’ 13 testimony, confirm that Dalvik bytecode instructions indeed contain symbolic references: the 14 field indices and other indices that are operands in Dalvik instructions. For resolve.c, the 15 question of “dynamic” in the Court’s construction was not presented, as resolve.c indisputably 16 resolves references dynamically. Whether or not the references are also pointers to table entries, 17 as Google argues, is legally irrelevant. 18 19 20 1. A field index is a symbolic reference that is contained in a Dalvik bytecode instruction A field index in a Dalvik bytecode instruction meets the Court’s definition of “symbolic 21 reference.” The Court construed the term “symbolic reference” as “a reference that identifies data 22 by a name other than the numeric memory location of the data, and that is resolved dynamically 23 rather than statically.” ECF No. 137 at 22. 24 A field index—also called field@CCCC generally or “01” in specific examples of field 25 indices in the trial testimony—is a reference to data to be obtained in accordance with a 26 corresponding numerical reference, and identifies that data by a name other than the numeric 27 memory location of the data. RT 3228:14-3229:25 (McFadden); RT 3303:2-3304:20 (Mitchell). 28 In order to obtain data from the data object containing the value of the field, the Dalvik VM uses ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 2 1 the resolver functions of Resolve.c to resolve the field index to a numeric memory location that is 2 then used to obtain the value. RT 3646:24-3647:25 (McFadden); RT 3308:18-3309:24 3 (Mitchell). The Dalvik VM resolves type indices,2 method indices, and string indices in much the 4 same way as field indices, and they are symbolic references for the same reason. See RT 5 3239:17-21 (McFadden); 3310:4-3311:1 (Mitchell). 6 The Dalvik bytecode instruction that was the focus of both parties’ evidence and argument 7 is the IGET instruction, which corresponds to the “LOAD ‘y’” instruction in the ’104 patent. RT 8 3297:10-3302:2 (Mitchell); RT 3956:2-3961:6 (August). The IGET instruction (together with the 9 IPUT instruction) “performs the identified object instance field operation with the identified field, 10 loading or storing into the value register.” TX 735 at 6, emphasis added. The IGET instruction 11 contains three operands—vA, vB, and field@CCCC—where the third operand field@CCCC is 12 the field index. TX 735 at 6; RT 3221:8-10 (McFadden). The field index in the IGET instruction 13 identifies the field—that is, it specifies the field from which the data is to be obtained by IGET. 14 Google’s Mr. McFadden testified: 15 Q. Can you explain what the iget instruction is? 16 A. That is the instance field get instruction. What that means is there is an object somewhere and you need to get a piece of data out of it. The data is stored in fields. So what this instruction does is it finds the instance of the object and retrieves the data from the specified field. 17 18 19 RT 3221:2-7 (McFadden), see also RT 3968:10-15 (August). Dr. Mitchell confirmed that the 20 resolve instance field function call takes the field index as an argument and returns the resolved 21 field, which is stored and then used by Dalvik to obtain the actual field data. RT 3311:23- 22 3312:19 (Mitchell); 3318:4-3319:13 (Mitchell). 23 For the field index in the IGET instruction to be a symbolic reference, it is enough that it 24 identifies—“specifies,” in Mr. McFadden’s words—some data to be obtained, by something other 25 than the data’s location. This satisfies the Court’s construction of “symbolic reference.” 26 27 2 28 A class index is a kind of type index. TX 736 at 2. ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 3 1 Android engineers McFadden and Bornstein testified that the field index contained in the 2 instructions is not the numeric memory location of the value of the field. RT 3614:22-3615:16 3 (Bornstein); 3761:19-3762:6 (McFadden). In fact, “the Dalvik IGET instruction never contains 4 the numerical memory location of the actual field data that it is supposed to get.” Id. 3761:14-18 5 (McFadden) (emphasis added). Dr. August also testified that the field index was not the 6 numerical memory location of the actual field data in an object. RT 3970:20-3971:3 (August). 7 Dr. Mitchell confirmed that the field indices and other indices, which are contained in the Dalvik 8 bytecode instructions, “are names that are used when there is data as the program runs to find the 9 location of data, but they, themselves, are not the location of the program data in any sense.” RT 10 3533:21-25 (Mitchell). This testimony proved that the field index in the IGET instruction is a 11 symbolic reference to the field, because the field index is not and cannot be the numeric memory 12 location of the value of the field. 13 That indexes such as the “01” in “52 01” (the bytecode for IGET field@0001) may also 14 indicate the location of information in the dex file’s constant pool is not relevant. The claims do 15 not require that a reference exclusively identify data symbolically to qualify as a symbolic 16 reference. Moreover, there is no requirement in the ’104 patent or the Court’s claim construction 17 that the reference to data in a symbolic reference be direct. Indeed, by definition, a symbolic 18 reference is not the numeric memory location of the data it refers to, so it is necessarily indirect. 19 Because the indexes in question at least identify data by names other than numeric 20 memory locations, they qualify as symbolic references. This reasoning is confirmed by the 21 Court’s construction of the terms “resolve” and “resolving” to mean “at least determing the 22 numerical memory-location reference that corresponds to the symbolic reference.” (emphasis 23 added). The process of resolution may also include intermediate steps that refer to the constant 24 pool, but so long as the symbolic reference “at least” used to determine the corresponding 25 numerical memory-location, the Court’s construction of both “symbolic reference” and “resolve” 26 is met. This provides an independent basis on which JMOL of infringement should be granted. 27 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 4 1 2 3 2. The data that is obtained is the “data” that determines whether a reference is symbolic or numeric, not the constant pool information used to perform symbolic reference resolution An additional basis on which JMOL of infringement should be granted is that the “data” 4 in the Court’s construction of symbolic reference (“a reference that identifies data by a name 5 other than the numeric memory location of the data”) is the actual field data “obtained” by 6 Dalvik—the value of a field in an “instance object”—rather than the constant pool information in 7 the Android dex file that is the focus of Google’s arguments. 8 That data from an instance object is the “data” that the claimed symbolic reference refers 9 to follows from the claim language of the’104 patent. For this issue, Claim 11 is representative: 10 11. An apparatus comprising: 11 a memory containing intermediate form object code constituted by a set of instructions, certain of said instructions containing one or more symbolic references; and 12 13 14 a processor configured to execute said instructions containing one or more symbolic references by determining a numerical reference corresponding to said symbolic reference, storing said numerical references, and obtaining data in accordance to said numerical references. 15 16 TX 4015, 7:5-14. Applying the Court’s construction of “symbolic reference,” the instructions 17 contain references to data that identify the data by a name other than the numeric memory 18 location of the data; the references are resolved to numeric memory locations, which are then 19 stored and used to “obtain” the data. 20 FIG. 1B of the ’104 patent (below) shows that a symbolic reference refers to the data that 21 is “obtained.” The figure illustrates the execution of the instruction “LOAD ‘y.’” In this 22 instruction, the symbolic reference “y” refers to the data in the data object. RT 3298:20-21 23 (Mitchell). “[A]n instruction that accesses or fetches y, such as the Load instruction 14’ 24 illustrated in FIG. 1, references the variable y by the symbolic name ‘y’.” TX 4015, 1:37-39. 25 The symbolic reference is to the data obtained, not some other information. The experts agree 26 that the purpose of the LOAD instruction described in the patent is to obtain the value from the 27 data object. RT 3298:20-24 (Mitchell), 3960:25-3961:6 (August). 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 5 1 2 3 4 5 6 7 8 A field index in a Dalvik IGET instruction is a symbolic reference because it identifies data in the 9 instance object by a name (the index) other than the numeric memory location. McFadden, 10 Bornstein, August, and Mitchell all testified that the field index is not the numeric memory 11 location of the actual field data in an object. RT 3614:22-3615:16 (Bornstein), 3761:14-3762:6 12 (McFadden), 3790:20-3971:3 (August), 3533:21-25 (Mitchell). 13 The Field ID table and the other parts of the dex file constant pool information are not 14 “data” within the meaning of the claims. Referring to the description of the dex file format (TX 15 736), Mr. McFadden testified that the Field ID table is not stored in the data area of a dex file: 16 17 Q. So what this description of the overall file layout of a dex file shows is that the Field ID table is not stored in the Data area of a dex file; true, sir? 18 A. It’s not stored in the section that’s labeled “Data.” 19 Q. Not stored in the section labeled “Data” by TX 736, Google’s official definition of the dex file format; true, sir? 20 A. True. 21 RT 3754:13-19 (McFadden). The constant pool information is not the data that the instructions 22 refer to or obtain. Mr. McFadden testified that, while the IGET instruction obtains actual field 23 data from an object and stores it in a Dalvik register, it does not obtain the field index, string ID 24 index, or the strings “fun” or “byte” and store any of them in a Dalvik register. RT 3759:10- 25 3760:23 (McFadden). Thus, even if a field index were a numeric memory location in the Field ID 26 table, it would still nevertheless be a symbolic reference, because it also identifies the value of a 27 field in an instance object—the only data that is relevant to the claims—by a name other than its 28 location. ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 6 1 3. 2 Conversion of instruction stream indices to numeric memory locations confirms that the indices are symbolic reference—numeric references are not resolved 3 The fact that the field indices are resolved to numeric references further confirms that they 4 are symbolic references. If they were numeric references and not symbolic references, there 5 would be no need to convert them to numeric references. But because Dalvik does convert field 6 indices (and other instruction stream indices) to pointers (numerical references), no reasonable 7 jury could conclude that the indices are not symbolic references. 8 Google’s Mr. McFadden testified: 9 Q. The Dalvik VM stores pointers that result from resolving the indexes? 10 A. Yes. 11 Q. And the Dalvik VM then pulls them out of storage on subsequent Dalvik bytecode executions? 12 A. Yes. 13 14 RT 3236:6-11 (McFadden). Mr. McFadden’s source code comments explain that the Dalvik 15 resolving functions convert an index contained in the instruction stream into a pointer: 16 17 18 When a class, method, field, or string constant is referred to from Dalvik bytecode, the reference takes the form of an integer index value. This value indexes into an array of type_id_item, method_id_item, field_id_item, or string_id_item in the DEX file. The first three themselves contain (directly or indirectly) indexes to strings that the resolver uses to convert the instruction stream index into a pointer to the appropriate object or struct. 19 20 TX 46.14 at 1 (emphases added). Mr. McFadden confirmed that this was an accurate description 21 of Dalvik. RT 3236:12-19 (McFadden). He also testified that if the instruction stream index 22 were the numeric memory location, it would already be a pointer and there would be no reason to 23 convert it to a pointer. RT 3234:22-3235:13 (McFadden). 24 That Dalvik resolves a field index to a numeric memory location means that a reasonable 25 jury could come to only one conclusion: a field index is a symbolic reference. Under Google’s 26 view, Dalvik resolves a numeric reference into a numeric reference. As its own witnesses 27 testified, there would be no reason to do that. (Id.) The Court should grant judgment of 28 infringement as a matter of law in Oracle’s favor. ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 7 1 B. 2 Oracle is also entitled to judgment as a matter of law on infringement of ’104 patent Android dexopt infringes claims 27 and 29 of the ’104 patent 3 claims 27 and 29 by dexopt. Google’s engineers testified that dexopt resolves symbolic 4 references into numerical references. See, e.g., RT 3769:8-12 (McFadden). There were only two 5 disputed issues regarding infringement: whether Dalvik dexopt bytecode instructions contain 6 symbolic references and whether dexopt resolves symbolic references dynamically rather than 7 statically. See, e.g., RT 3841:2-19 (August). The first issue is the same as that with respect to 8 Android’s Resolve.c and should be resolved in Oracle’s favor as discussed above. With respect 9 to the second issue, the evidence at trial showed that dexopt resolves symbolic references 10 11 dynamically rather than statically. No reasonable jury could find otherwise. The Android source code documentation and admissions by Google engineers establish 12 that dexopt resolves references dynamically. Mr. McFadden admitted that the resolution process 13 depends on the conditions actually existing on the handset; dexopt needs to rerun when those 14 conditions change by way of a system update. RT 3769:13-17 (McFadden). See id. at RT 15 3255:20-25 (admitting need to run dexopt when performing system update because memory 16 layout could change). Dr. Mitchell agreed. RT 3330:24-3331:21 (discussing McFadden 17 testimony). That is sufficient under the ordinary meaning of “dynamic.” 18 Dexopt is performed with a running Dalvik virtual machine. That dexopt runs at 19 “runtime” is another sufficient, although not necessary, basis on which to show dynamic 20 reference resolution. Dexopt must process dex files while the Dalvik Virtual Machine is running 21 because it needs information only available at runtime. Android engineer Dan Bornstein admitted 22 that dexopt processes dex files while the Dalvik Virtual Machine is running. RT 3580:21-23 23 (Bornstein). Similarly, when asked whether “dexopt processes the dex files when the Dalvik 24 Virtual machine is running,” Google expert David August responded, “Sometimes.” RT 3988:14- 25 3989:23 (August). 26 Google’s internal documentation confirms that dexopt optimizations require information 27 only available at runtime. TX 105, part of the Android documentation for dexopt, explains that 28 dexopt is “really just a back door into the VM. It performs an abbreviated VM initialization, ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 8 1 loads zero or more DEX files from the bootstrap class path, and then sets about verifying and 2 optimizing whatever it can from the target DEX.” TX 105 at 2. It states, in reference to the 3 optimizations performed by the Dalvik optimizer, that “Some of these require information only 4 available at runtime, others can be inferred statically when certain assumptions are made.” Id. at 5 3. As Dr. Mitchell explains, TX 105 shows “the sense in which [dexopt] is dynamic and it’s part 6 of the runtime environment of the Android platform.” RT 3321:22-3332:16, 3989:21-23. 7 Similarly, in TX 1094, HTC developer Kant Kang asks why dexopt has to execute during runtime 8 instead of compile time, noting that it causes “extra cpu usage.” TX 1094. The response from 9 Android engineers is: “What you are seeing is normal behavior” and for an explanation as to 10 “why some of these optimizations can only be performed at runtime,” they quote from TX 105. 11 Id. When showed this document, Google’s paid fact witness, Dan Bornstein, tried to dispute the 12 obvious, claiming the Android engineer who responded to this customer query “must have just 13 been confused.” RT 3580:24-3584:8. 14 Notwithstanding these admissions from its own engineers and documents, Google 15 maintains that dexopt is “static” because Google documents sometimes refer to the dexopt 16 symbolic reference resolution process as “static linking.” But calling an apple a “banana” does 17 not change the fact that it is an apple. Likewise, calling a dynamic process “static,” as in TX 816, 18 does not change the fact that it is dynamic. 19 The ordinary meaning of “dynamic” does not require “at runtime.” Mr. McFadden 20 admitted that dexopt is dynamic if “dynamic” means “depending on conditions on the handset 21 which can change from time to time.” See, e.g., RT 3769:23-3770:1 (McFadden). The Court 22 should grant JMOL in Oracle’s favor. 23 24 C. Under the correct claim construction, dexopt resolves symbolic references “dynamically rather than statically” 25 As set forth in Oracle’s objection to Jury Instruction 11 (ECF 1128), the Court’s 26 construction of “symbolic reference” should be adjusted to accurately reflect the meaning of the 27 terms “dynamic” and “static” as used in the ’104 patent and the Court’s May 9, 2011 Claim 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 9 1 Construction Order. Under the proper construction, Google’s non-infringement argument based 2 on dynamic vs. static resolution disappears. 3 The ’104 patent is unambiguous as to what “static” and “dynamic” mean in connection 4 with numeric and symbolic references. The patent uses the terms “static” and “dynamic” as 5 adjectives to characterize numeric and symbolic references, respectively: “[T]he main 6 interpretation routine determines if the data reference is static, i.e., numeric, or dynamic, i.e., 7 symbolic . . . .” TX 4015, 5:11-13 (emphasis added). A numeric reference is “static” because it 8 does not change – it directly references the memory location of data. Id. at 5:24-31 (describing 9 “static field reference routine” used to handle numeric references). A symbolic reference is 10 “dynamic” because it changes – it must be resolved to identify the memory location of data. Id. 11 at 5:13-23 (describing “dynamic field reference routine” used to handle symbolic references). 12 The Court’s Claim Construction Order explained this very clearly – numeric references 13 are “static” because they identify a memory location directly, while symbolic references are 14 “dynamic” because they require resolution to a memory location: 15 16 17 18 19 20 21 22 23 A numeric data reference was one that identified data directly by its memorylocation address. For example, the command “load the data stored in memory slot 2” contains a numeric reference to the data stored in slot 2 (col. 1:26–41). The claimed invention would use a static subroutine to interpret this numeric data reference — all it would have to do is go get whatever data is stored in slot 2 . . . . A symbolic data reference, on the other hand, did not identify data directly by its memory-location address. Instead, a symbolic reference identified data by a “symbolic name” (col. 1:64–67). For example, the command “load the data called y” contains a symbolic reference to the data called y. The claimed invention would use a dynamic subroutine to interpret this symbolic reference — it would have to figure out that “y” means “17” or that “y” means “the data stored in memory slot 2,” and then get the data called y (col. 5:13–19). ECF 137 at 20-21, emphasis added. Despite the clarity of the patent and the Court’s Claim Construction Order, the actual 24 claim construction of “symbolic reference” is ambiguous as to the meaning of “dynamic” and 25 “static.” As submitted to the jury, “symbolic reference” is construed to mean “a reference that 26 identifies data by a name other than the numeric memory location of the data, and that is resolved 27 dynamically rather than statically.” ECF 1141 at 5, emphasis added. Oracle originally objected 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 10 1 to the inclusion of the last phrase (in italics), noting that confusion might arise over the meaning 2 of “dynamic.” ECF 132 at 2. The Court declined to remove that phrase, but explained: 3 4 Because this word [“dynamic”] comes directly from the ’104 patent, its use therein will further inform the construction of ‘symbolic reference.’ The word ‘dynamic’ is not being imported from a vacuum. 5 ECF 137 at 22. The Court should now apply the correct meaning of “dynamic” to dispose of 6 Google’s non-infringement arguments. 7 Google exploited the ambiguity in the construction of “symbolic reference” to argue that 8 “dynamic” refers to the timing of symbolic reference resolution, rather than the nature of the 9 symbolic references. In its closing argument and through its witnesses, Google sought to 10 establish that “dynamic” is sometimes understood in the industry to mean resolution “at runtime,” 11 while “static” may be understood to mean resolution at “install time.” See RT 3762:23-3763:19 12 (McFadden). Irrespective of how those terms may otherwise be used, that is not how they are 13 used in the ’104 patent. Instead, “dynamic” refers to the changeable nature of symbolic 14 references – they must be resolved to identify the memory location of the underlying data based 15 on memory conditions that exist at whatever time the resolution occurs. TX 4015 at 5:10-31; 16 ECF 137 at 20-21. This is the meaning of “dynamic” that must be applied to resolve Google’s 17 non-infringement argument. 18 Applying the correct meaning of “dynamic,” there is no question that Android’s dexopt 19 dynamically resolves symbolic into numerical references. Google’s Andy McFadden confirmed 20 that the index number contained in the IGET instruction is converted into a pointer, which he 21 admitted was a numerical reference. RT 3234:4-18 (McFadden). While Mr. McFadden and 22 Google deny that the index number is a symbolic reference (as previously addressed), there is no 23 dispute that dexopt replaces it with a numerical reference. RT 3739:13-3741:16 (McFadden). 24 That is the meaning of “dynamic” as used in the ’104 patent. Mr. McFadden further 25 acknowledged that the resolution of index numbers into pointers is also “dynamic” in that it 26 depends on conditions existent on the handset at the time of resolution. RT 3769:8-3770:1 27 (McFadden). Under the correct interpretation of “dynamic,” Google cannot dispute that dexopt 28 resolves references dynamically. ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 11 1 IV. NO REASONABLE JURY COULD FIND THAT GOOGLE DID NOT INFRINGE THE ASSERTED CLAIMS OF THE ’520 PATENT 2 3 Oracle proved that Google’s dx tool infringes Claims 1 and 20 of the ’520 patent. Google 4 concedes that all steps of Claims 1 and 20 are performed except the “simulating execution” step. 5 But the indisputable evidence is that “simulating execution” is performed by the dx tool code; 6 indeed, it is expressly described in the code comments. Google’s defense rests solely on reading 7 non-existent limitations into the claims. Absent that legal impropriety, no reasonable jury could 8 find against Oracle. 9 Oracle’s expert, Dr. Mitchell, testified that the dx tool simulates the execution of 10 bytecodes to determine the static initialization of arrays. The purpose of the method is to reduce 11 the number of bytecodes needed to initialize arrays. To that end, the dx tool examines the 12 bytecodes without executing them to determine the static initialization that they perform. The 13 comments in the dx tool code confirm this. TX 46.16 at line 37 (“Class which knows how to 14 simulate the effects of executing bytecode”). That is the very definition of “simulating 15 execution” recited in the patent claims. 16 Google’s two counter-arguments rely on reading non-existent limitations into the claim 17 language: (1) The dx tool does not infringe because it does not manipulate a data stack in 18 determining static initialization of arrays; and (2) the dx tool does not infringe because it uses 19 pattern matching to determine static initialization. Neither is a defense. The asserted claims do 20 not require stack manipulation, so its absence from the dx tool is not exculpatory. And the 21 asserted claims do not exclude pattern matching, so even if that forms part of the dx tool process, 22 it still qualifies as “simulating execution” of bytecodes. 23 A. ’520 Patent Background 24 The invention of the ’520 patent addresses a problem with static array initialization by the 25 Java virtual machine. TX 4011 (’520 patent), 1:57-2:58; RT 3334:16-3335:19 (Mitchell). Static 26 arrays are lists of data items (such as numbers) that are used by Java programs. RT 3334:20-25 27 (Mitchell). For static arrays to work, they need to be initialized in the Java virtual machine. TX 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 12 1 4011, 1:57-2:52. Initialization occurs via a method (“<clinit>” or “class initialization”) that uses 2 a series of Java bytecodes to initialize the static array. Id. 3 As an example, the patent shows a static array written in Java source code. Id. at 1:65. 4 When this source code is compiled, the Java compiler produces a long list of Java bytecode 5 instructions to initialize the array. Id., 2:26-57; RT 3335:10-19 (Mitchell). This set of bytecode 6 instructions is larger than the array itself and takes up more memory space. Id. 7 To reduce the bytecodes needed for initialization, the invention simulates execution of the 8 bytecode instructions to determine the static initialization they perform. Id., 2:64-3:7. The long 9 list of instructions is then replaced with a shorter instruction indicating the static initialization of 10 11 12 the array. Id., 3:66-4:17. In this way, the invention saves memory space. B. Android’s dx Tool Simulates Execution Of Bytecodes To Identify The Static Initialization Of Arrays Claims 1 and 20 of the ’520 patent are infringed by Android’s dx tool. As indicated in the 13 patent claim handouts, Google admits that all steps of Claims 1 and 20 are performed by the dx 14 tool except for the following steps: 15 16 From Claim 1 17 simulating execution of the byte codes of the clinit method against a memory without executing the byte codes to identify the static initialization of the array 18 From Claim 20 19 simulating execution of the code to identify the static initialization of the array. 20 TX 1106 at 7-8. Google’s code demonstrates that the dx tool does, in fact, perform these 21 “simulating execution” steps. 22 1. Dr. Mitchell’s Analysis 23 The dx tool is part of the Android SDK, a platform developers use to write and compile 24 Android applications. RT 3549:25-3550:2 (Bornstein), 3253:23-3254:2 (McFadden). The first 25 version of the dx tool was written at Google by former engineer Dan Bornstein. RT 3547:20-21 26 (Bornstein). Android applications written in the Java programming language are first compiled to 27 Java bytecode using a Java compiler. RT 3547:5-10 (Bornstein). The Android dx tool is then 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 13 1 used to transform the Java bytecode files into Android dex code files. RT 3547:14-19 2 (Bornstein). 3 Because the dx tool processes Java bytecode compiled by a Java compiler, it faces the 4 same problem described in the ’520 patent – namely, that files containing static arrays will have 5 long lists of bytecode instructions for array initialization. RT 3338:15-3339:1 (Mitchell). The dx 6 tool solves this problem using the patented technique; it simulates execution of the instructions 7 and replaces them with a single instruction to initiate the array. RT 3338:19-3339:1 (Mitchell). 8 A code file called “Simulator.java” within the dx tool simulates execution of the 9 initialization bytecodes to figure out what they do. TX 46.16 (Simulator.java); RT 3340:5- 10 3341:16 (Mitchell). The engineer comments in the code clearly state that Simulator.java is a class 11 designed to “simulate the effects of executing bytecode”: 12 13 14 15 16 17 TX 46.16 at lines 37-43, 86-105. The file calls upon the parseInstruction and parseNewarray 18 methods to assist with understanding the instructions. TX 46.16 at line 99; TX 46.17 at lines 211, 19 887; RT 3341:17-3344:7 (Mitchell). As a result of Simulator.java and the methods it invokes, the 20 bytecode instructions are examined without being executed, their static initialization is 21 determined, and a shorter “fast instruction” is generated to replace the long list of bytecode 22 instructions. Id. This precisely matches the “simulating execution” step of the asserted claims. 23 To confirm the infringing functionality of the dx tool, Dr. Mitchell performed an 24 experiment. RT 3344:8-3346:1 (Mitchell). He created a file containing a static array of ten 25 elements and compiled the file to Java bytecode using a Java compiler. Id. The resulting 26 bytecode contained roughly 50 instructions to initialize the array. Id. He then ran the bytecode 27 through the dx tool. Id. The resulting dex file had a single, succinct instruction to initialize the 28 array, rather than the list of 50 instructions. Id. This confirmed that the dx tool, using ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 14 1 Simulator.java, had simulated execution of the instructions, determined their static initialization, 2 and replaced them with a shorter instruction, just as recited in the asserted claims. Id. 3 2. 4 Dr. Parr Sought To Read Additional Limitations Into The Claim Language 5 Google’s expert, Dr. Parr, conceded that the dx tool does “identify the static initialization 6 of the array” by examining the “byte codes of the clinit method against a memory” and “without 7 executing the byte codes.” RT 3793:2-5, 3807:10-14, 3820:12-22, 3821:16-23, 3822:17-3823:13. 8 With those concessions, Dr. Parr acknowledged that the sole remaining issue was whether the dx 9 tool process for identifying static initializations could be characterized as “simulating execution.” 10 On this issue, Dr. Parr offered two arguments, both dependent on importing additional 11 limitations into the asserted claims. First, Dr. Parr said that the dx tool cannot be simulating 12 execution of bytecodes because it does not manipulate a stack to determine static initializations of 13 arrays. RT 3794:15-3795:21, 3801:19-21. In support, he pointed to an exemplary embodiment in 14 the patent specification involving stack manipulation. Id. However, as Dr. Parr himself 15 conceded, the asserted claims make no mention of stack manipulation. TX 4011, 9:47-62, 12:3-7; 16 RT 3794:20-23. Nor has the term “simulating execution” been construed to require stack 17 manipulation. Indeed, dependent Claim 3 includes “stack manipulation” as an express limitation, 18 establishing that the limitation is not part of independent Claim 1. The absence of stack 19 manipulation in the dx tool is irrelevant to infringement, as the asserted claims do not require that 20 feature. 21 Second, Dr. Parr argued that the dx tool identifies static initializations through pattern 22 matching, which he contends is distinguishable from “simulating execution” of bytecodes. RT 23 3798:22-3799:3. While Dr. Parr admitted that the process of creating and initializing arrays 24 begins in the Simulator.java file, he argued that the identification of static initializations occurs in 25 another file and involves pattern matching. RT 3800:2-3801:18, 3830:12-19, 3834:8-16, 26 3834:25-3835:5. Again, this argument relies on limiting the meaning of “simulating execution,” 27 this time to exclude any pattern matching. The term has not been construed that way. There is 28 nothing in the claim language to suggest that “simulating execution” cannot be achieved through ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 15 1 pattern matching. The meaning of “simulating execution” is apparent from the claim language 2 itself: 3 simulating execution of the byte codes of the clinit method against a memory without executing the byte codes to identify the static initialization of the array 4 5 TX 4011, Claim 1 (emphasis added). In the context of the surrounding language, “simulating 6 execution” is performed on “byte codes of the clinit method,” “without executing the byte codes,” 7 “to identify the static initialization of the array.” Dr. Parr has admitted that those elements are 8 performed by the dx tool. Whether or not this occurs through pattern matching, it is still 9 “simulating execution” – i.e., identifying static initialization of bytecodes without actually 10 executing them. 11 V. 12 GOOGLE’S EQUITABLE DEFENSES FAIL Google’s equitable defenses to Oracle’s copyright infringement claim overlap with its 13 equitable defenses to Oracle’s patent infringement claims. Oracle’s proposed findings of fact and 14 conclusions of law submitted after Phase I reflect the state of the record at the end of that phase 15 and are hereby incorporated by reference. See ECF Nos. 1048 at 11-26, 30-35; ECF 1081 at 16- 16 37, 55-70. 17 In addition, Oracle identifies below further evidence introduced in Phase II of the trial 18 relating to the equitable defenses, and highlights other evidence particularly relevant to those 19 defenses in the context of Oracle’s patent claims. Google did not submit new evidence in Phase 20 II that is material to its equitable defenses. Under the law that applies to Google’s equitable 21 defenses in the patent context, judgment should be entered in Oracle’s favor. 22 A. 23 During Phase I, Oracle introduced extensive evidence of the negotiations between Oracle Additional Facts Relevant to Google’s Equitable Defenses 24 and Google beginning in 2005 and of Google’s internal recognition of the need to take a license 25 from Sun. See, e.g., ECF 1048 at ¶¶ 64-65, 85-86, 98-99. One of Google’s primary goals in 26 these negotiations was to obtain a license to Sun’s patents. See, e.g., TX 2714 at 1 (Feb. 6, 2006 27 Rubin email) (“If you and I can define the open source license and include patent protection, then 28 Eric will be 100% supportive”); TX 22 at 8 (Apr. 24, 2006 presentation entitled “Android/Sun ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 16 1 final approval” and describing proposed license as “includes patent grants”); TX 618 §§ 1.17, 2 1.22, 1.32, 3.1(d) (draft licensing agreement including license to Sun patents). 3 The key Google participants in the negotiations were already familiar with Sun’s patents. 4 Andy Rubin had negotiated a license with Sun at his prior company, Danger, which included 5 license rights to Sun patents. TX 1026 § 2.1(Sun-Danger license); TX 565 (Aug. 2, 2007 Gupta 6 email) (“Andy cannot say he is not aware of the licensing requirements- as he had to go thru this 7 at Danger- and we discussed this during Project Android Phase, and then during the Sun/Google 8 collaboration attempt as well”). Mr. Rubin was specifically aware that Sun had patents relating to 9 the virtual machine. After initially resisting on cross-examination, Mr. Rubin finally admitted 10 that he “had discussions with Sun about patents relating to the virtual machine.” RT 3204:6- 11 3205:3 (Rubin). Mr. Rubin also authored several emails that showed he was aware of the need to 12 take a license to Sun’s patents. In March 2006, for example, Mr. Rubin wrote, “I don’t see how 13 you can open java without sun, since they own the brand and ip.” TX 18 at 1. Mr. Rubin 14 acknowledged at trial that by “IP” he meant “Patents, copyrights and the like.” RT 1355:1-4 15 (Rubin). Six months later, in November 2006, in response to Sun’s announcement that it was 16 open sourcing the Java platform, Mr. Rubin cautioned: “They still have patents and trademarks.” 17 TX 155 at 1. Mr. Rubin explained what he meant by this remark: 18 19 20 21 22 Look, like I said before, I assume they're running a business, they're inventing intellectual property, they’re protecting it through the patent system. Through GPL, I didn't know what they were, but I knew that it was dangerous to use the stuff without knowing exactly what it was. TX 1128 at Rubin Dep. Tr. 16:4-16 (emphasis added). Tim Lindholm was another key Google representative in the negotiations. He assisted 23 Rubin by “helping negotiate with my old team at Sun for a critical license.” TX 17 at 1. Before 24 joining Google, Mr. Lindholm worked at Sun, specifically with the Java Virtual Machine, and 25 was a named inventor on more than 10 Sun patents, many or all of which relate to Java virtual 26 machines. RT 2993:5-24. He was aware of the ’104 patent in particular. Mr. Lindholm co- 27 authored the book, The Java Virtual Machine Specification, with Frank Yellin. TX 25. 28 Mr. Yellin also now works for Google. RT 2997:14-2998:15. Chapter 9 of that book states, “The ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 17 1 technique documented in this chapter is covered by U.S. Patent 5,367,685.” TX 25 at 389. The 2 ’685 patent is the predecessor to the ’104. See TX 4015 at 1. Google’s argument that all claims 3 of the ’104 patent are broader than the claims of the ’685 patent (ECF 311) means that the ’104 4 would cover the technology described in the chapter as well. 5 Despite his concern that it was “dangerous” to proceed without knowing what Sun’s 6 intellectual property covered (TC 1128 at Rubin Dep. Tr. 16:4-16), Mr. Rubin never asked 7 Mr. Lindholm—or anyone else on his team—to review any Sun patents or investigate whether 8 Android technology might infringe one of Sun’s patents. RT 3140:17-3141:1 (Rubin), 3027:11- 9 3028:4 (Lindholm). 10 To counter this evidence, in its closing statement, Google trotted out the Jonathan 11 Schwartz November 2007 blog post yet again, claiming it showed Sun had no concerns about 12 Google’s patent infringement. RT 4193:2-13 (Google closing). But Android’s source code was 13 not publicly released until October 21, 2008—almost a full year later. RT 1719:10-18 (Rubin). 14 Google had not even finished developing the Android source code in November 2007, let alone 15 publicly released it. See RT 1507:20-1508:18 (Schmidt). Mr. Schmidt’s alleged conversations 16 with Mr. Schwartz similarly took place in late 2007 and early 2008 (id. at 1537:3-18)—again, 17 well before Google’s source code was released and Sun could have known of Google’s 18 infringement. 19 When the source code was released, Sun was in discussions with Google over a license to 20 Java. See, e.g., TX 1058 (Oct. 7, 2008 Gupta email to Rubin) (“Many thanks for taking time to 21 kick the discussion off yesterday”). These discussions continued. On November 24, 2008, 22 Mr. Rubin wrote that Sun had asked him “to certify Android through the Java process and 23 become licensees of Java.” TX 1002. In February 2009, Brett Slatkin proposed to Eric Schmidt 24 that Google buy the rights to Java and “solve all these lawsuits we’re facing.” TX 406 at 1. 25 Schmidt wrote back “Certainly a clever idea. I’ll ask our team to pursue.” TX 406 at 1. The 26 proposal was also forwarded to Tim Lindholm and Bob Lee, the lead Android core libraries 27 developer. TX 326. 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 18 1 There is a particularly revealing set of emails relating to a meeting that took place between 2 the parties on April 29, 2009. In an email written immediately after the meeting, which was 3 admitted in Phase II, Oracle’s account manager for Java technology and source code licensing, 4 Leo Cizek writes that he confronted Google’s Martin Buccholz about the need for Google to take 5 a license for Android: 6 Vineet, 7 Tom and I spoke with Martin Buccholz today. I delivered the message that they have only two options: OpenJDK or Commercial Use, which would require compatibility. I also explained that using Java in the context of customer-facing applications is considered by Sun to be commercial use. I also explained that if they choose the commercial use/compatibility option, it would have ramifications throughout Google, and I gave Android as an example. 8 9 10 11 12 13 14 Martin replied: “The Android group did not use any Java code in developing Dalvik; they only used the Java specifications.” Unfortunately I did not have a tape recorder running at the time! I replied that Sun’s position is that the spec license agrmts require that any s/w created from them which is for commercial use be compatible. TX 531. 15 Mr. Buccholz sent a parallel email internally at Google that same afternoon: 16 As expected, this does not look promising. Leo says Sun has an inflexible licensing model where Open JDK never gets any support of any kind, and the commercial version of the code does (and mostly Sun is thinking of support for binaries). Also, Sun would want any discussions with Google to involve other inter-company issues, in particular Android, which I’m sure we would want to keep separate. Android seems to be a big deal at Sun. Leo suggested that his boss, Vineet Gupta, CTO for OEM Software Systems Engineering, should have a chat with Tim Lindholm (Tim knows both of these guys) and I agreed that would be a good idea. 17 18 19 20 21 22 23 24 25 26 27 TX 1029 (emphasis added). Tim Lindholm’s initial response, after stating, “I guess this isn’t surprising,” was to agree to meet with Mr. Gupta. Id. But then he thought better of it: Actually, having said that I wonder whether this is too close to dangerous territory, and with too little chance of anything positive coming of it for us to be messing around? We really don’t want to inadvertently stir anything up for Android, and Leo has said pretty clearly that they don’t have anything for us as regards security patches. I suspect we should step away, and only respond further if Sun chases after us. 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 19 1 Id. (emphasis added). Mr. Bornstein responded (“No surprise that I think this is exactly what we 2 should do.”). Id. 3 Google stepped away, but it could not hide for long. Oracle’s acquisition of Sun closed 4 on January 27, 2010. ECF 525 at 8 Stipulated Fact No. 3. One of Mr. Ellison’s first acts was to 5 meet personally with Mr. Schmidt about Android in March 2010 to persuade Google to become 6 compatible with Java. RT 312:18-20 (Ellison). Several meetings took place between the two 7 companies over the next few months, including a meeting between Mr. Ellison and Mr. Page, 8 meetings with Andy Rubin and his boss, Alan Eustace, and a meeting on July 20, 2010 where 9 Google admits the ’104 and ’520 patent were specifically discussed. RT 391:15-395:2 (Kurian), 10 11 12 13 2309:22-2314:12 (Catz). The lawsuit was filed on August 12, 2010. B. Google Has Not Shown that Equitable Estoppel Bars Oracle’s Patent Infringement Claims To prevail on its estoppel defense, Google must prove that (1) Sun/Oracle, “through 14 misleading conduct, led” Google “to reasonably infer that” Sun/Oracle “did not intend to enforce 15 its patent against” Google; (2) Google “relied on this conduct;” and (3) “due to the reliance,” 16 Google “will be materially prejudiced if” Oracle “is allowed to proceed on its claim.” Gasser 17 Chair Co. v. Infanti Chair Mfg. Corp., 60 F.3d 770, 776 (Fed. Cir. 1995). 18 Google failed to prove any of these elements. The test for patent estoppel is similar to the 19 one for copyright estoppel, so Oracle refers the Court to its analysis on that subject. See 20 ECF 1049 at 29-31; ECF 1081 at 60-63. In particular, Google has no credible claim that it relied 21 on Sun/Oracle’s conduct to its detriment or that its reliance was reasonable. The jury so advised 22 in its Phase I ruling. ECF 1089 ¶ 4.B. While this advisory verdict was specifically in the context 23 of the SSO of the copyrighted code, Google did not introduce any new material evidence in phase 24 II that provides support for this claim, so the verdict applies equally here. 25 The evidence shows that negotiations between the parties over Java licensing continued 26 throughout the relevant time period and beyond. See, e.g., RT at 492:18-22 (Page) (“I’m not sure 27 they’ve ever broken off. Continue to have discussions to this day”); TX 531, 1002, 1029, 1058, 28 ECF 1049 ¶¶ 85, 99-100, 133. Overwhelming evidence at trial showed Google was aware that ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 20 1 Sun had patents that covered the virtual machine technology and that it faced potential legal 2 action by Sun in connection with Android. See, e.g., RT 3204:6-3205:3 (Rubin); RT 2993:4-24 3 (Lindholm); TX 18, TX 25 at 389, TX 1029, ECF 1049 ¶¶ 62-65, 130, 132, ECF 1081 ¶ 66. 4 Google’s argument is one made up by the lawyers in hindsight. In all of its discussions with Sun 5 and Oracle, Google never claimed that it had been led by Sun to believe that it didn’t need a 6 license or had relied on any such belief. ECF 134, RT at 2316:1-9 (Catz). Google decided on its 7 Android development path and implemented the infringing technology regardless of any Sun or 8 Oracle statements, actions, or inactions, and Google has never proven otherwise. TX 1029, ECF 9 1049 ¶¶ 62-65, 96, 98, 114, 117. Google knew the risks of operating without a license but 10 11 12 13 decided to proceed anyway. C. Google Has Not Shown that the Doctrine of Laches Applies to Oracle’s Patent Infringement Claims Google has not produced evidence to raise a colorable laches defense. In patent, as in 14 copyright, laches requires proof of the following elements: (1) “the plaintiff delayed filing suit 15 for an unreasonable and inexcusable length of time from the time the plaintiff knew or reasonably 16 should have known of its claim against the defendant,” and (2) “the delay operated to prejudice or 17 injury of the defendant.” A.C. Aukerman Co. v. R.L. Chaides Const. Co., 960 F.2d 1020, 1032 18 (Fed. Cir. 1992) (en banc). “A district court must weigh all pertinent facts and equities in making 19 a decision on the laches defense.” Id. at 1034 (“the length of delay, the seriousness of prejudice, 20 the reasonableness of excuses, and the defendant’s conduct or culpability must be weighed”). 21 Here, Oracle filed suit on August 12, 2010, less than two years from the first time that 22 Google made the code in Android available to the public, on October 21, 2008. RT 1719:10-18 23 (Rubin). Because Oracle brought suit within less than six years of learning of the infringement, 24 there is no presumption of laches, and “the burden is upon the defendant to show that the delay 25 was unexcused and that the defendant suffered injury as a result of the delay.” Carpet Seaming 26 Tape Licensing Corp. v. Best Seam, Inc., 694 F.2d 570, 580 (9th Cir. 1982); A.C. Aukerman, 27 960 F.2d at 1038. 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 21 1 While Oracle did not delay unreasonably, negotiations with the accused infringer would 2 justify delay in filing suit in any case. See A.C. Aukerman Co., 960 F.2d at 1033. Courts have 3 found delay reasonable or excusable where evidence shows that for several years leading up to 4 the start of litigation, plaintiff engaged in efforts or negotiations to license the defendant. In re 5 Katz Interactive Call Processing Patent Litig., 712 F. Supp. 2d 1080, 1110-11 (C.D. Cal 2010). 6 Lucent Techs., Inc. v. Gateway, Inc., 580 F. Supp. 2d 1016, 1053 (S.D. Cal. 2008) (granting 7 plaintiff’s JMOL of advisory verdict—and holding defendant “did not prove the laches factors by 8 a preponderance of the evidence, and even if it had, the Court would exercise its discretion and 9 decline to apply laches in light of all the circumstances of this case.”), vacated-in-part on other 10 11 grounds by 525 F.3d 1200 (Fed. Cir. 2008). Google also failed to demonstrate material prejudice by showing that it took actions or 12 suffered consequences that it would not have had Sun/Oracle brought suit earlier. “The courts 13 must look for a change in the economic position of the alleged infringers during the period of 14 delay.” A.C. Aukerman, 960 F.2d at 1033. Google’s policy was to push forward and develop 15 Android even if it risked “making enemies along the way,” and it did not change its position in 16 reliance on Oracle’s inaction. See Oracle’s Proposed Findings of Fact, ECF 1049, at 19-24. 17 Finally, “laches is not available in a case of willful infringement.” Cf. A.C. Aukerman, 18 960 F.2d at 1033 (conscious copying may constitute “particularly egregious conduct which would 19 change the equities significantly in the plaintiff’s favor.”); Winn v. Opryland Music Group, Inc., 20 22 Fed. Appx. 728, 729 (9th Cir. 2001). As the evidence shows willful infringement here, 21 Google may not assert the defense of laches. See Oracle’s Proposed Findings of Fact, ECF 1049, 22 at 19-24. 23 24 D. Google Has Not Shown that Oracle or Sun Waived Its Right to Assert Patent Infringement Claims 25 To prevail on its claim for waiver, Google must prove by clear and convincing evidence 26 that Oracle or Sun, with full knowledge of the material facts, intentionally relinquished rights to 27 enforce the ’104 or the ’520 patents. Qualcomm Inc. v. Broadcom Corp., 548 F.3d 1004, 1019- 28 1020 (Fed. Cir. 2008). “An implied waiver of rights will be found where there is ‘clear, decisive ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 22 1 and unequivocal’ conduct which indicates a purpose to waive the legal rights involved.” Adidas- 2 Am., Inc. v. Payless Shoesource, Inc., 546 F. Supp. 2d 1029, 1074 (D. Or. 2008) (quoting U.S. v. 3 Amwest Surety Ins. Co., 54 F.3d 601, 602–03 (9th Cir.1995)). 4 Google has presented no credible evidence that Sun/Oracle intentionally relinquished 5 rights. Neither Sun nor Oracle ever relinquished anything. Instead both made numerous attempts 6 to negotiate a license with Google. See section V.A. above and ECF 1081 at 68-70. Moreover, 7 neither the November 2007 blog post from Mr. Schwartz nor the alleged meetings between Mr. 8 Schwartz and Mr. Schmidt in late 2007 and early 2008 can support Google’s waiver defense 9 because both took place before Google released its source in October 2008. RT 1719:10-18 10 (Rubin). Sun therefore could not have had “full knowledge” of the relevant facts at the time of 11 Schwartz’s blog post. Qualcomm, 548 F.3d at 1019-20. 12 13 E. Google Has Not Shown that Oracle or Sun Gave It an Implied License to Use Oracle’s Patents 14 The doctrine of implied license has no application here. In the patent infringement 15 context, “[t]he implied license defense is typically presented ‘when a patentee or its licensee sells 16 an article and the question is whether the sale carries with it a license to engage in conduct that 17 would infringe the patent owner's rights.’” Zenith Elecs. Corp. v. PDI Commc’ns Sys., 522 F.3d 18 1348, 1360 (Fed. Cir. 2008) (granting JMOL against implied license defense, holding that “an 19 implied license arising from sale of a component to be used in a patented combination extends 20 only for the life of the component whose sale and purchase created the license.”); Jacobs v. 21 Nintendo of Am., Inc., 370 F.3d 1097, 1100 (Fed. Cir. 2004) (implied license was derived from 22 express license between Jacobs and purchaser that specifically authorized purchaser to sell 23 accelerometers for infringing uses). Relatedly, for there to be an implied license, the plaintiff 24 must have made an “affirmative grant of consent or permission” to the accused infringer to use 25 the patented inventions. Wang Labs., Inc. v. Mitsubishi Elecs. Am., Inc., 103 F.3d 1571, 1581 26 (Fed. Cir. 1997). 27 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 23 1 This case could hardly be more different from the ones cited above. There was no “sale” 2 by Oracle to Google, and no affirmative grant of permission. The record shows the reverse. See 3 e.g., ECF 1049 at 15-19. 4 VI. 5 ALTERNATIVE GOOGLE DEFENSES THAT GOOGLE PLED BUT DID NOT PRESENT TO THE JURY FAIL A. 6 7 Google Has Not Shown Patent Misuse, Use by the United States, or Unclean Hands In its answer, Google asserted the defenses of patent misuse (Sixth Defense, Google Inc.’s 8 Answer To Plaintiff’s Amended Complaint For Patent And Copyright Infringement And 9 Amended Counterclaims (“Google Answer”) (ECF 51) at 10), use by the United States (Eighth 10 Defense, Google’s Answer at 10), and unclean hands (Nineteenth Defense, Google’s Answer at 11 12). Google did not identify these defenses as remaining to be decided in the parties’ October 13, 12 2011 Joint Proposed Pretrial Order. (ECF 525 at 1-6.) The Court ruled that only those claims or 13 defenses set forth in the Joint Proposed Pretrial Order remained in the case. 14 (1/4/2012 Final Pretrial Order (ECF 675) at 1.) See Dream Games of Ariz., Inc. v. PC Onsite, 561 15 F.3d 983, 996 (9th Cir. 2009) (“[P]arties are typically considered bound by the statements of 16 claims made in their pretrial order.”). Accordingly, these defenses must fail. 17 B. 18 Google Has Not Shown that Oracle or Sun Gave It an Express License to Use Oracle’s Patents 19 The Court should grant judgment as a matter of law to Oracle on Google’s express license 20 defense. An express license is a defense to patent infringement. See Carborundum Co. v. Molten 21 Metal Equip. Innovations, 72 F.3d 872, 878 (Fed. Cir. 1995). Google presented no evidence that 22 any user of Android (including Google itself) held an express license from Oracle or Sun to the 23 ’104 or ’520 patents. Nor did Google argue that defense to the jury. Accordingly, Oracle should 24 be granted judgment as a matter of law on this defense. 25 VII. 26 27 CONCLUSION For the foregoing reasons, Oracle is entitled to judgment in its favor on its patent infringement claims and against Google on Google’s defenses. 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 24 1 Dated: May 16, 2012 MORRISON & FOERSTER LLP 2 3 4 By: /s/ Michael A. Jacobs Michael A. Jacobs Attorneys for Plaintiff ORACLE AMERICA, INC. 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ORACLE AMERICA, INC.’S RULE 50(A) MOTION FOR PHASE II (PATENT PHASE) CASE NO. CV 10-03561 WHA pa-1528682 25

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?