Reply_Motion_re_Copyright_Infringement_in Support_of_Sun_Microsystems_Motions_for_Preliminary_Injunction_Argued_September 10_98. 

27. Reply Motion (re: Copyright Infringement), in Support of Sun
Microsystems, Inc.'s Motions for Preliminary Injunction
Legal document in support of Sun's motion to be argued on September 10th,
1998.

 

Sun's Reply In Support Of Its Motion for Preliminary Injunction, Re: Copyright

plain text version

DAY CASEBEER MADRID
WINTERS & BATCHELDER LLP
LLOYD R. DAY, JR. (90875)
VERNON M. WINTERS (130128)
JAMES R. BATCHELDER (136347)
DAVID J. ESTRADA (168105)
ROBERT M. GALVIN (171508)
JULIE S. TURNER (191146)
20400 Stevens Creek Boulevard, Suite 750
Cupertino, CA 95014
Telephone: (408) 255-3255

COOLEY GODWARD LLP
JANET L. CULLUM (104336)
JAMES DONATO (146140)
Five Palo Alto Square, 3000 El Camino Real
Palo Alto, CA 94306-2155
Telephone: (650) 843-5133

Attorneys for Plaintiff
SUN MICROSYSTEMS, INC.

UNITED STATES DISTRICT COURT
NORTHERN DISTRICT OF CALIFORNIA
SAN JOSE DIVISION

SUN MICROSYSTEMS, INC.,
a Delaware corporation,

Plaintiff,

v.

MICROSOFT CORPORATION,
a Washington corporation,

Defendant,

No. C 97-20884 RMW (PVT) ENE

SUN MICROSYSTEMS, INC.'S REPLY IN
SUPPORT OF ITS MOTION FOR
PRELIMINARY INJUNCTION UNDER 17
U.S.C. § 502

Date: September 10, 1998
Time: 9:00 a.m.
Judge: Hon. Ronald M. Whyte
Ctrm: 6

Refiled Pursuant to
10/21/98 Order of the Court

TABLE OF CONTENTS

I. SUN IS LIKELY TO SUCCEED ON THE MERITS OF ITS COPYRIGHT INFRINGEMENT CLAIM. 1
  A. MICROSOFT DOES NOT DISPUTE THAT IT COPIED SUN'S JDK SOURCE CODE OR THAT ITS PRODUCTS FAIL THE JCK 1.1A TEST SUITE. 1
  B. MICROSOFT HAS NOT REBUTTED THE PRESUMPTION OF VALIDITY OF SUN'S COPYRIGHTS OR SUN'S SHOWING THAT ITS COPYRIGHT EXTENDS TO THE MATERIAL WHICH MICROSOFT COPIED. 3
  C. THE TLDA GRANTS SUN THE RIGHT TO TEST FOR JNI. 4
    1. Because JNI falls within the definition of "AAPI," the "Java Test Suite" may test for compliance with Sun's specification of JNI. 4
    2. The term "AAPI" is not limited to the Java classes listed in Section I(A) of Exhibit A of the TLDA. 6
    3. The draft agreements exchanged by the parties during negotiations confirm "AAPI" is not limited to the Java classes listed in Section I(A) of Exhibit A of the TLDA. 7
    4. Section 1.1(a) of the definition of "AAPI" is not limited to "only the Java applet interfaces." 8
    5. "Sun's specification of the AAPI" is not limited to the Documentation listed in Section 1.1(b)-(d) 9
    6. Since JNI is not a Supplemental Java Class, Microsoft does not have discretion whether to distribute JNI with its Products. 10
    7. Microsoft does not have the "sole right" to define native code interfaces like JNI. 10
  D. THE TLDA DOES NOT GRANT MICROSOFT THE RIGHT TO DISTRIBUTE COMPILER PRODUCTS WHICH FAIL SUN'S TEST SUITES. 12
  E. SUN'S COPYRIGHT INFRINGEMENT CLAIM IS BASED ON MICROSOFT EXCEEDING THE SCOPE OF ITS LICENSE, NOT ON BREACH OF CONTRACT. 13
II. EVEN THOUGH SUN IS LEGALLY ENTITLED TO AN ORDER ENJOINING THE SALE OF ALL INFRINGING MICROSOFT PRODUCTS, SUN IS WILLING TO MODIFY ITS REQUESTED RELIEF TO MINIMIZE THE INCONVENIENCE TO THIRD PARTIES REGARDING WINDOWS 98. 14

TABLE OF AUTHORITIES

Cases Page
A. Kemp Fisheries, Inc. v. Castle & Cooke, Inc.,
852 F.2d 493 (9th Cir. 1988)
6
Apple Computer, Inc. v. Formula Int'l, Inc.,
725 F.2d 521 (9th Cir. 1984)
15
Cadence Design Sys., Inc. v. Avant! Corp.,
125 F.3d 824 (9th Cir. 1997),
cert. denied, 118 S. Ct. 1795 (1998).
14
California State Auto. Ass'n Inter-Ins. Bureau v. Antonelli,
156 Cal. Rptr. 369 (Ct. App. 1979)
7
Forry, Inc. v. Neundorfer, Inc.,
837 F.2d 259 (6th Cir. 1988)
15
Rano v. Sipa Press, Inc.,
987 F.2d 580 (9th Cir. 1993)
14
S.O.S., Inc. v. Payday, Inc.,
886 F.2d 1081 (9th Cir. 1989)
14
Sun Microsystems, Inc. v. Microsoft Corp.,
999 F. Supp. 1301 (N.D. Cal. 1998)
4
Triad Sys. Corp. v. Southeastern Express Co.,
64 F.3d 1330 (9th Cir. 1995)
3, 15
United States v. King Features Entertainment, Inc.,
843 F.2d 394 (9th Cir. 1988)
14
Statutes  
17 U.S.C. § 410(c) 3
Cal. Civ. Code § 1625 6
Cal. Civ. Proc. Code § 1856 6

INTRODUCTION

Microsoft does not dispute that it copied the source code for Sun's JAVATM Development Kit ("JDK") computer program. Nor does it dispute that Sun has registered copyrights for the JDK. Instead, Microsoft twists beyond recognition the terms of the Technology License and Distribution Agreement ("TLDA") in a vain attempt to argue that the TLDA bars Sun's copyright infringement claim. The license granted to Microsoft under the TLDA, however, authorizes Microsoft to distribute only such products which first pass Sun's compatibility test suite. Microsoft does not dispute the fact that its products fail to pass Sun's JAVATM Compatibility Kit ("JCK") 1.1a test suite. Consequently, Microsoft's distribution of incompatible products is unlicensed and infringes Sun's registered copyrights. Nonetheless, Microsoft asks the Court to rewrite the terms of the TLDA, excuse its failure to comply, and hold that Microsoft cannot be held liable for copyright infringement even if it exceeds the scope of its license from Sun.

Sun's preliminary injunction motion for copyright infringement is not about denying "innovation" or "choice." The issue is whether Microsoft will be required to honor the terms and limits of its license with Sun, or whether, because of its size and market dominance, Microsoft will be allowed to ignore its contractual obligations, infringe Sun's copyrights, and debase Sun's JAVATM technology.

I. SUN IS LIKELY TO SUCCEED ON THE MERITS OF ITS COPYRIGHT INFRINGEMENT CLAIM.

A. Microsoft Does Not Dispute That It Copied Sun's JDK Source Code Or That Its Products Fail the JCK 1.1a Test Suite.

Unlike most copyright infringement cases, the accused infringer in this case does not deny copying. Given the massive, literal copying of Sun's JDK source code into Microsoft's Internet Explorer 4.0 ("IE 4.0") and Software Development Kit for JAVATM ("SDKJ") 2.0 products, which Sun demonstrated in its opening papers, Microsoft does not contest that it copied Sun's JDK source code and incorporated Sun's source code into IE 4.0, SDKJ 2.0 and 3.0, Visual J++ 6.0 and Windows 98 products.

Microsoft also does not contest that it fails to pass all of the tests in Sun's JCK 1.1a test suite-- the test suite which accompanied Sun's JDK 1.1 upgrade. Specifically, Microsoft does not dispute that IE 4.0, SDKJ 2.0 and 3.0, Visual J++ 6.0 and Windows 98 fail to pass any of the 214 tests for JAVATM Native Interface ("JNI") contained in the JCK 1.1a test suite.1 Instead of showing that it passes Sun's compatibility test suite, Microsoft argues that it, unlike any other licensee, is exempt from any requirement to pass the JNI tests in the JCK 1.1a test suite. See infra pp. 4-11.

Besides failing the tests regarding JNI, Sun has also shown that Microsoft's SDKJ 2.0 and 3.0 and Visual J++ 6.0 products fail to pass the Compiler Output Requirement of the JCK 1.1a Test Suite. These products have compilers which utilize unauthorized keywords and compiler directives, causing these incompatible compilers to generate output that will not execute or "run" as intended by the programmer with Sun's standard JDK 1.1 Virtual Machine as required by the JCK 1.1a Test Suite. Schroer Reply Decl., ¶¶ 4-8; Hankinson Decl., ¶¶ 4, 6-8, 21-27, 34-38.

Microsoft does not dispute that its compiler generates output which runs on Microsoft's, but not Sun's, virtual machine. Instead, Microsoft claims the "execute properly" requirement of the JCK 1.1a Test Suite only requires Microsoft's compilers to produce output that complies with the Java Language Specification and the Java Virtual Machine* Specification, regardless whether it will execute as intended by the programmer on Sun's JDK 1.1 Virtual Machine. Opp. at 12. According to Microsoft, if its compiler recognizes unauthorized keyword or compiler directives and outputs a program which causes a box to appear upon execution using Microsoft's virtual machine, that same output "properly executes" on Sun's JDK 1.1 virtual machine even if the box fails to appear and an error message is generated. Deutsch Reply Decl., ¶¶ 17-20; Schroer Reply Decl., ¶¶ 8-13.

Microsoft's argument is nonsensical. One important purpose of the Compiler Output Requirement in the JCK 1.1a test suite is to ensure that a licensee like Microsoft does not impermissibly alter the JAVATM language with unauthorized commands or syntax that cause its compiler output to execute as intended only with its virtual machine and no others. Schroer Reply Decl., ¶ 12; Hankinson Reply Decl., ¶¶ 25-27. By requiring a licensee's compiler to generate output which executes properly on Sun's standard JDK 1.1 virtual machine, Sun protects source code and binary code compatibility among all of its licensees. Id. Like the JNI test failures, Microsoft unsuccessfully argues this failure should be excused as well. See infra pp. 11-13.

B. Microsoft Has Not Rebutted The Presumption Of Validity Of Sun's Copyrights Or Sun's Showing That Its Copyrights Extend To The Material Which Microsoft Copied.

Microsoft acknowledges that Sun has received certificates of registration from the Copyright Office for various versions of its JDK computer program. Microsoft also acknowledges, as it must, that Sun's copyrights are therefore entitled to a presumption of validity. See 17 U.S.C. § 410(c); Triad Sys. Corp. v. Southeastern Express Co., 64 F.3d 1330, 1335 (9th Cir. 1995).

Microsoft's only contention is that, since Sun's JDK source code has a small amount of code developed by third parties, either Sun's copyrights are of dubious validity or Sun has not shown that its copyrights extend to the material Microsoft copied. Microsoft's argument is half-hearted at best, and with good reason. Sun told the Copyright Office about third-party code in the JDK computer program, and, after examination, the Copyright Office still issued certificates of registration. See Crean Decl., Exhs. D-E; Supp. Crean Decl., Exhs. A-C. The fact that less than 10% of the source code files for JDK 1.1 may contain third-party code does not rebut the presumption of validity of Sun's copyrights. Lindholm Reply Decl., ¶ 44. The vast bulk of the JDK source code is original source code developed by Sun. Id. If it were not, companies like Microsoft surely would not have paid millions of dollars to license the technology.

Microsoft also argues, again without much force, that Sun has not shown its copyrights extend to the material Microsoft copied. Even if the files which potentially contain third-party code are completely excluded from consideration, Sun still has submitted evidence that at the very least hundreds of files contained in Microsoft's products are identical or contained less than 10% lines of different source code, and that tens of thousands of lines of code are identical. Deutsch Reply Decl., ¶¶ 30-35. Microsoft has offered no evidence demonstrating it independently developed all of the source code in its products or that it only copied the small portion of Sun's JDK based on third-party files. Microsoft surely would have presented the Court with such evidence if any existed. Based on this record, Sun has shown that Microsoft copied material protected by Sun's copyrights, and Microsoft has failed to rebut the presumption of validity attached to Sun's copyrights.

C. The TLDA Grants Sun the Right To Test For JNI.

Given the failure of Microsoft's products to pass the JCK 1.1a test suites and the undisputed evidence of copying, Microsoft's core defense to the charge of copyright infringement is its argument that it is not required to pass the JCK 1.1a tests relating to JNI. Not only is Microsoft's argument wholly lacking in merit, it is predicated on an attempt to replace the actual text of the TLDA with new, unwritten limitations based solely on inadmissible parol evidence.

1. Because JNI falls within the definition of "AAPI," the "Java Test Suite" may test for compliance with Sun's specification of JNI.

This Court previously considered arguments regarding testing for JNI and found that "Sun has raised a serious question as to whether its tests for JNI compliance are appropriate under the TLDA." Sun Microsystems, Inc. v. Microsoft Corp., 999 F. Supp. 1301, 1310 (N.D. Cal. 1998).

Sun's position is based on the plain text of the TLDA:

  • Section 1.15 of the TLDA defines "Java Test Suite" as "SUN's publicly available test suites for validating that products which interpret Java bytecodes comply with the SUN specification of the AAPI as of the date of the test suites." TLDA at § 1.15.2
  • Section 1.1 of the TLDA defines "AAPI" in relevant part as "the public application programming interface to the Java Applet Environment (JAE) reflected in the Technology as identified in Exhibit A . . . as modified by SUN during the term of this Agreement." Id. at § 1.1.
  • Exhibit A of the TLDA states the JAE consists of certain Java Classes and the "Java Runtime Interpreter, which implements the Java Virtual Machine." Id. at Exh. A.

Based on these definitions, any "public application programming interface" to the "Java Runtime Interpreter" falls squarely within the definition of AAPI. Since "Technology" is expressly defined in section 1.25 to include "Upgrades," "AAPI" encompasses "the public application programming interface . . . as modified by SUN," and the "Java Test Suite" tests for compliance with the specification of the AAPI "as of the date of the test suites," Sun's Upgrades to the "Java Runtime Interpreter" also fall squarely within the definition of "AAPI." The Java Test Suite therefore may test for compliance with Sun's specification of Upgrades to the Java Runtime Interpreter.

On the critical issue of whether JNI is a public application programming interface to the Java Runtime Interpreter, there is no dispute. Sun has submitted evidence from other licensees, such as IBM, Inprise and Netscape, as well as experts attesting that JNI is a public application programming interface to the Java Runtime Interpreter. See Sueltz Decl., ¶ 7; LeFaivre Decl., ¶ 5; Day Reply Decl., Exh. A [Hennesey Tr. at 193-99], Exh. B [Joy Tr. at 122], Exh. C [Deutsch Tr. at 290-91]; Gosling Reply Decl., ¶ 15. Sun distributed JNI in its JDK 1.1 upgrade as an enhancement of an earlier native method interface contained in the Technology originally shipped to Microsoft. Sueltz Decl. ¶ 7. In response, Microsoft offers no evidence that JNI is not a public application programming interface to the Java Runtime Interpreter, nor does it argue the point in its papers. Amidst the plethora of distractions raised in Microsoft's opposition, its silence on this critical point is telling.

Given the text of the TLDA and the deposition testimony of its own witnesses, Microsoft's silence is understandable. Microsoft's expert concedes JNI is an application programming interface. Huhns Decl., ¶ 40. He also concedes JNI provides a "mechanism . . . to invoke a Java virtual machine within a native code program." Id. Similarly, Brad Silverberg, Microsoft's former Senior Vice President of the Applications and Internet Client Group, admitted that he considered JNI "an interface to the VM." Day Decl., Exh. D [Silverberg Tr. at 38]. Since the Java Runtime Interpreter "implements" the Java Virtual Machine or "VM," an "interface to the VM" such as JNI is, by definition, an "interface to the Java Runtime Interpreter" according to Microsoft's own admissions. Indeed, the TLDA specifically describes "interfaces to the Reference Implementation VM" as including "native code interfaces." TLDA at § 2.9(e).

Based on this plain reading of the TLDA, Sun has demonstrated a likely success of establishing that Sun's Java Test Suite may test for compliance with Sun's specification of JNI. Since Microsoft fails those tests, Microsoft is acting outside the scope of its license, and is liable for copyright infringement.

2. The term "AAPI" is not limited to the Java classes listed in Section I(A) of Exhibit A of the TLDA.

Not content with the definition of "AAPI" in the contract, Microsoft argues that the term should be construed in light of the "contemporaneous definition" of AAPI found in various "white papers" and "readme" files collected by Microsoft's expert. Opp. at 7. Based on these sources, Microsoft argues "AAPI" should be interpreted to mean "Java Applet API" or "Java Base API" and be limited to the Java classes or "packages listed in section I(A) of Exhibit A of the TLDA." Id.

Microsoft should not be allowed to contradict the unambiguous definitions contained in this carefully negotiated agreement. The TLDA is an integrated contract reflecting the "final, complete and exclusive agreement between the parties." TLDA at § 12.3. "If a contract is integrated, the parol evidence rule operates to exclude evidence that is not relevant to prove a meaning to which the language of the instrument is reasonably susceptible." A. Kemp Fisheries, Inc. v. Castle & Cooke, Inc., 852 F.2d 493, 495 (9th Cir. 1988) (internal quotations omitted); see also Cal. Civ. Code § 1625; Cal. Civ. Proc. Code § 1856. Extrinsic evidence is not admissible "to add to, detract from, or vary the terms of a written contract." A. Kemp Fisheries, 852 F.2d at 495. "If, after considering the evidence, the court determines that the contract is not reasonably susceptible to the interpretation advanced, the parol evidence rule operates to exclude the evidence." Id. at 496 n.2.

Here, the TLDA expressly defines AAPI as comprising "the public application programming interfaces to the Java Applet Environment." "Java Applet Environment" is in turn defined in Exhibit A of the TLDA as consisting of two elements: (1) the Java Classes listed in section I(A); and (2) the Java Runtime Interpreter. By arguing that "AAPI" should be limited to the Java Classes listed in section I(A), Microsoft is directly contradicting an express, unambiguous definition and giving no effect to the term "Java Runtime Interpreter." The definition of "AAPI" is "not reasonably susceptible" to Microsoft's proposed interpretation. Microsoft's parol evidence must be excluded. See California State Auto. Ass'n Inter-Ins. Bureau v. Antonelli, 156 Cal. Rptr. 369, 374-75 (Ct. App. 1979) (holding contract term is not ambiguous simply because "commonly understood meaning" of term conflicts with express, unequivocal definition in contract).

3. The draft agreements exchanged by the parties during negotiations confirm "AAPI" is not limited to the Java classes listed in Section I(A) of Exhibit A of the TLDA.

Even if Microsoft's parol evidence-based argument were reasonable and admissible, which it is not, Sun has still shown a likelihood of success in establishing that the definition of "AAPI" is not limited to the Java Classes listed in Exhibit A of the TLDA. Not only is Sun's construction supported by the text of the TLDA, the negotiation history confirms Sun's construction as well.

Microsoft originally proposed defining "AAPI" as "the application programming interface to the Technology, including the interface to the Applet Classes," and defining "Applet Classes" as "the Java classes listed in Exhibit A." Patch Reply Decl., ¶ 18. Sun specifically rejected this definition, explaining that it wanted to make clear that the definition of "AAPI" was not limited to just the Java classes in Exhibit A of the TLDA -- precisely the argument Microsoft is now making. Id. Sun thus proposed a definition of "AAPI" based on the broader term, Java Applet Environment, which expressly included the Java Runtime Interpreter. Id., ¶ 19. Sun's proposed definition, not Microsoft's, was incorporated in the final TLDA. Id., ¶¶ 19-20. If the parties wished to limit the definition of "AAPI" to just Exhibit A(I)(A)'s Java Classes, as Microsoft now contends, they would have adopted Microsoft's proposed definition, not Sun's.

4. Section 1.1(a) of the definition of "AAPI" is not limited to "only the Java applet interfaces."

Microsoft argues that JNI does not fall within the definition of "AAPI" because JNI is not a "Java applet interface" or a "Java interface." Opp. at 9-10. Since neither "Java applet interface" nor "Java interface" is a term used or defined in the TLDA, Microsoft appears to be tilting at windmills that only it can see. The TLDA does not use the terms, and Microsoft has not provided a clear explanation of their meaning in its brief.

Microsoft seems to argue that section 1.1(a) of the AAPI definition is limited to "Java applet interfaces," which Microsoft says are interfaces to be invoked by an "applet programmer" writing an applet in the Java language. Opp. at 9-10; Huhn Decl., ¶ 43. Microsoft apparently believes the presence of the word "applet" in the term "Applet Application Programming Interface" or "AAPI," creates this limitation. Opp. at 16. Because applet programmers supposedly cannot "ask to load libraries of native methods when their applet is run," Microsoft claims JNI is "irrelevant to an Applet programmer" and thus not a "Java programming interface." Id. at 10.

Microsoft's argument suffers from two fatal flaws. First, as a legal matter, the TLDA expressly and unambiguously defines "AAPI." The presence of the word "applet" in the term "AAPI" does not limit or modify the express definition of "AAPI," as the actual definition in the TLDA makes plain. Regardless how third-party programmers might interpret the term "AAPI" by itself, the parties gave the term a particular, express meaning which controls. Microsoft cannot be permitted to use parol evidence to contradict the simple, explicit definition found in the TLDA.

Second, as a factual matter, Microsoft's argument is built on the false premise that applets cannot load native code when they run. To the contrary, applets can load native code, depending on the security context. Lindholm Reply Decl., ¶ 23. James Allchin, Microsoft's Senior Vice President for Personal and Business Systems, admitted that applets could load native code when digitally signed. Day Reply Decl., Exh. E [Allchin Tr. at 57]; see also Huhn Decl, ¶ 24. Even before the signing of the TLDA in March 1996, applets could load native code in a variety of security contexts. Lindholm Reply Decl., ¶ 23.

5. "Sun's specification of the AAPI" is not limited to the Documentation listed in Section 1.1(b)-(d).

Based on a quote from an internal Sun document discussing compatibility testing prepared by a Sun engineer before the execution of the TLDA, Microsoft claims that the Java Test Suite may not test for JNI because " the SUN specification of the AAPI" is limited to "the three Documentation excerpts listed in TLDA sections 1(b), (c) and (d)." Opp. at 15.

Microsoft's argument that the phrase "SUN specification of the AAPI" excludes section 1.1(a) from its scope is without support. The TLDA expressly defines the "Java Test Suite" as validating compliance "with the SUN specification of the AAPI as of the date of the test suites." TLDA at § 1.15. Section 1.1 of the TLDA defines "AAPI" as consisting of four elements: (a), (b), (c) and (d). Sun's specification of the AAPI is therefore Sun's specification for these four elements as of the date of the test suites. If the parties intended to limit the Java Test Suite to validating compliance with section 1.1(b), (c) and (d), they would have defined Java Test Suite as validating compliance only "with the SUN specification of sections 1.1(b)-(d)," not the broader term "SUN's specification of the AAPI." The term "SUN specification of the AAPI" is not reasonably susceptible to Microsoft's strained interpretation. Microsoft should not be allowed to rely on unrelated, parol evidence which contradicts the plain text of the TLDA.

Even if parol evidence were considered, Sun has shown that the parties never expressed any intent to exclude the subject matter of section 1.1(a) from the specification of AAPI or compatibility testing. Baratz Reply Decl., ¶ 6. In fact, such a construction would deny the parties' acknowledgment of the need for the test suites to evolve with the JAVATM technology. Id.

Microsoft's last argument for excluding section 1.1(a), and thus JNI, from the definition of "the SUN specification of the AAPI" is that Sun's testing must be prevented from being "arbitrary and unconstrained." Microsoft's musings about images of Mr. Lindholm's mother being packaged with the Java Runtime Interpreter miss the mark. Opp. at 15. Mr. Lindholm's mother surely has many wonderful qualities, but we doubt anyone would consider her a public interface to the Java Runtime Interpreter.

By contrast, JNI certainly is an interface to the Java Runtime Interpreter -- a point Microsoft does not contest. JNI's predecessor, a native method interface called "NMI," was part of the JAVATM technology when the TLDA was executed and was included in Sun's first shipment of the JDK to Microsoft. Sueltz Decl., ¶ 7; Lindholm Reply Decl., ¶ 8. Also, unlike Mr. Lindholm's mother, native code interfaces are specifically referenced in the Java Virtual Machine Specification. Lindholm Reply Decl., ¶¶ 14-19. Microsoft has no valid argument: JNI is part of an Upgrade within the scope of the definition of "AAPI."

6. Since JNI is not a Supplemental Java Class, Microsoft does not have discretion whether to distribute JNI with its Products.

Microsoft suggests that it is has "sole discretion" whether to include "enhancements to the AAPI," such as JNI, based on Section 2.7(a) of the TLDA governing Supplemental Java Classes. Opp. at 9-10. Section 2.7(a) of the TLDA, however, is inapplicable. Microsoft has "sole discretion" only whether to include "one or more Supplemental Java Classes in its Products." TLDA at § 2.7(a). "Supplemental Java Classes" are defined as "the Java classes that SUN delivers to Licensee after the Effective Date." Id. at § 1.23. JNI is not a "Java class," and thus, cannot be a "Supplemental Java Class."

Microsoft presents no evidence indicating that JNI is a Java class; it does not even claim JNI is a Java class. In fact, Microsoft's Brad Silverberg admitted JNI is not a Supplemental Java Class:

Q. . . . . Is JNI a class?

. . . .

A. My understanding is no, it's not a class.

Q. (By Mr. Batchelder) And therefore, it's not a supplemental class?

A. That was my understanding.

Day Reply Decl., Exh. D [Silverberg Tr. at 61]. Microsoft's suggestion that Section 2.7(a) justifies its exclusion of JNI is therefore without merit.

7. Microsoft does not have the "sole right" to define native code interfaces like JNI.

Emblematic of Microsoft's effort to elevate self-serving parol evidence over the text of the TLDA, Microsoft claims: "The final agreement grants Microsoft the sole right to define the native interfaces to Microsoft's Java Reference Implementation." Opp. at 11. Microsoft fails to cite any TLDA provision to support this claim, instead relying exclusively on after-the-fact recollection of its own employee about Microsoft's intent and Sun's alleged statements during the negotiations. Id.

Microsoft's failure to cite the contractual basis in the TLDA for its supposed "sole right to define the native interfaces" exposes the fallacy of its argument. Nowhere does the TLDA state that Microsoft has the "sole right" to define native interfaces like JNI. Patch Reply Decl., ¶ 33. Nor has Microsoft identified any provision of the TLDA that is "reasonably susceptible" to such an interpretation. Microsoft's "evidence" about what Sun allegedly said during the negotiations or what Microsoft employees thought or intended consist entirely of self-serving, after-the-fact "recollections" that must be excluded as a matter of law.

Even if the Court were to consider Microsoft's evidence, it would not withstand scrutiny. Microsoft agreed that "the Reference Implementation VM, and any upgrades thereto, shall include the necessary source code to implement the functionality of the Java Runtime Interpreter." TLDA at § 2.9(b) (emphasis added). The TLDA describes "Interfaces to the Reference Implementation VM" as including "native code interfaces," and provides for situations where "SUN may wish to suggest that [Microsoft] modify the ... interfaces to the Reference Implementation VM in a substantive way which cannot be adequately expressed through the Test Suites." Id. at § 2.9 (e) & (f) (emphasis added). Since Section 2.9(f) specifically addresses situations where the Test Suites do not "adequately express" Sun's modifications to the Reference Implementation VM, the parties must have intended that interfaces to the Reference Implementation VM, such as native code interfaces like JNI, would be subject to Sun's Test Suites.

The draft agreements and final TLDA support that conclusion, and demonstrate that while Sun granted Microsoft the right to create interfaces to its Java virtual machine, Sun always retained the right to test for conformance to native code interfaces that Sun specified. Patch Reply Decl., ¶¶ 30-50. As reflected in the final TLDA as well as the drafts proposed by Microsoft, the parties understood that Microsoft's right to define its own interfaces was always subject to the requirement of passing Sun's Test Suites. Id., ¶¶ 49-50.

D. The TLDA Does Not Grant Microsoft The Right To Distribute Compiler Products Which Fail Sun's Test Suites.

Even if the compilers in Microsoft's SDKJ 2.0 and 3.0 and Visual J++ 6.0 products fail the JCK1.1a Test Suite, Microsoft claims its failure is excused because "Microsoft's products do in fact have a mode that enables them to pass the Java Language Test Suite." Opp. at 17. Section 2.6(b)(iv) of the TLDA states in relevant part:

. . . Licensee agrees that any new version of a Product that includes the Java Language compilation function that Licensee makes commercially available to the public after the most recent Compatibility Date shall include a mode which a Tool Customer may use to permit such product to pass the Java Language Test Suite that accompanied the Significant Upgrade.

According to Microsoft, this "mode" language gives it the unfettered right to make any changes to the JAVATM language it wants, as long as its compilers also contain a mode which will pass the Test Suite. Opp. at 17. Microsoft's argument is wrong on two scores. First, Microsoft's interpretation of section 2.6(b)(iv) conflicts with the stated purpose of the TLDA and Microsoft's representations during the negotiations. Second, even were the Court to adopt Microsoft's strained construction, the mode switch contained in Microsoft's compilers does not enable them to generate output that passes the JCK 1.1a test suite. Hankinson Decl., ¶¶ 8, 37-38.

The mode language in section 2.6(b)(iv) does not grant Microsoft a license to change the JAVATM language. It only allows Microsoft to include in its compilers the ability to compile code for prior, compatible versions of the JAVATM technology that were incorporated in earlier products. Baratz Reply Decl., ¶¶ 15-21; Patch Reply Decl., ¶¶ 62-68.

Section 2.6(b)(iv) supports this construction because it is limited to instances where a Significant Upgrade has occurred. If Microsoft distributes a Product with a compiler function "after the most recent Compatibility Date," it shall include a mode that permits the Product to pass the Java Language Test Suite "that accompanied the Significant Upgrade." TLDA at § 2.6(b)(iv). By limiting § 2.6(b)(iv) to the context of Significant Upgrades, the parties indicated the "mode" language was to allow Microsoft's compilers to support earlier versions of the JAVATM technology.

The negotiation history supports this construction. During negotiations, Sun repeatedly emphasized the need for Microsoft's contractual commitment to upgrade each of its products to conform to the latest version of the JAVATM technology as and when released by Sun. Baratz Reply Decl., ¶ 19. In response, Microsoft initially proposed that it would agree to incorporate in its runtime and compiler implementations a "mode" that would pass the latest compatibility test. Patch Reply Decl., ¶ 62. Sun expressed "great concern" to Microsoft about this language and rejected Microsoft's proposal, insisting that Microsoft upgrade each runtime product to include only the latest version of the technology. Id., ¶ 63. Microsoft ultimately agreed, as reflected in section 2.6(a)(vi) of the TLDA. Id., ¶ 65.

As to compiler implementations, however, Microsoft argued that it may wish to continue to distribute compilers that could compile for prior, outdated versions of the technology to support products Microsoft had previously distributed (i.e., earlier versions of its browsers and operating systems). Id., ¶ 66. After Microsoft assured Sun that the purpose of the "mode" language was to let Microsoft include a mode that would pass Sun's current compatibility test suite, as well as modes that had previously passed the prior test suites for earlier versions of the technology, Sun agreed to the language in section 2.6(b)(iv). Id., ¶ 67; Baratz Reply Decl., ¶ 20. Microsoft never suggested to Sun that the "mode" provision would allow Microsoft to modify, pollute, or "extend" the JAVATM language. Patch Reply Decl., ¶ 68; Baratz Reply Decl., ¶ 21. The failure of Microsoft's SDKJ 2.0 and 3.0 and Visual J++ 6.0 products to pass the JCK 1.1a Test Suite is not excusable.

In any event, even if the Court were to adopt Microsoft's construction, Microsoft's compiler products still fail to pass Sun's JCK 1.1a test suite. Hankinson Decl., ¶¶ 37-38.

E. Sun's Copyright Infringement Claim Is Based On Microsoft Exceeding The Scope Of Its License, Not On Breach Of Contract.

Microsoft claims that Sun's motion is based on a "breach of a covenant" and that "[t]o state a copyright infringement claim, Sun must show that the breach is a condition precedent to the license." Opp. at 17. Microsoft misstates both Sun's position and the law.

As Sun's opening brief made clear, Sun's motion is based on Microsoft's unlicensed distribution of infringing product, not on breach of a covenant or condition precedent. Motion at 13. Section 2 of the TLDA defines the scope of Microsoft's license. Unlike other provisions of the TLDA (e.g., payment of licensee fees), the compatibility requirements of section 2.6 expressly limit the scope of Microsoft's license. By failing to comply with the provisions of section 2.6, Microsoft acts outside the scope of its license and is treated like any other copyright infringer.

Sun is not required by law to show Microsoft breached a condition precedent to the license. Microsoft's opposition completely ignores S.O.S., Inc. v. Payday, Inc., 886 F.2d 1081, 1087 (9th Cir. 1989), cited in Sun's opening brief, which plainly holds, "A licensee infringes the owner's copyright if its use exceeds the scope of the license." Similarly, when citing the authority for the alleged requirement that Sun must show breach of a condition precedent, Microsoft curiously does not cite the three-part test from Rano v. Sipa Press, Inc., 987 F.2d 580, 586 (9th Cir. 1993):
Under well-settled copyright law, Rano would be able to claim copyright infringement if Sipa exceeded the scope of the licensing agreement, breached a covenant or condition, or breached the agreement in such a substantial and material way as to justify rescission.
(emphasis added; internal citations omitted). Microsoft's extended meditations on implied versus express conditions, rescission, reversion and termination are therefore utterly irrelevant.3

II. EVEN THOUGH SUN IS LEGALLY ENTITLED TO AN ORDER ENJOINING THE SALE OF ALL INFRINGING MICROSOFT PRODUCTS, SUN IS WILLING TO MODIFY ITS REQUESTED RELIEF TO MINIMIZE THE INCONVENIENCE TO THIRD PARTIES REGARDING WINDOWS 98.

Since Sun has made a strong showing of likely success on the merits of its claim of copyright infringement, Sun is entitled to a presumption of irreparable harm, and "the balance of hardships issue cannot be accorded significant -- if any -- weight in determining whether a court should enter a preliminary injunction to prevent the use of infringing material." Cadence Design Sys., Inc. v. Avant! Corp., 125 F.3d 824, 830 (9th Cir. 1997), cert. denied, 118 S. Ct. 1795 (1998). Microsoft "cannot complain of the harm that will befall it when properly forced to desist from its infringing activities." Triad, 64 F.3d at 1338; see also Cadence Design, 125 F.3d at 830.

Microsoft has not rebutted Sun's presumption of irreparable harm. Microsoft's massive distribution of incompatible (and therefore) infringing products threatens to rob Sun and all of its other licensees of the substantial time and capital invested in developing the JAVATM technology. See Apple Computer, Inc. v. Formula Int'l, Inc., 725 F.2d 521, 525-26 (9th Cir. 1984). Microsoft's actions exceed the scope of the license in a manner that directly frustrates Sun's central objective -- maintaining compatibility among JAVATM language based products. By distributing incompatible products, Microsoft fragments the JAVATM programming environment and destroys cross-platform compatibility. Sueltz Decl., ¶¶ 2-11; Burton Decl., ¶¶ 3-7.

Sun has not unreasonably delayed in seeking relief. Sun filed this motion as soon as it had an opportunity to review Microsoft's source code for evidence of copying and before both Microsoft's Visual J++ 6.0 and Windows 98 were in final release. See Forry, Inc. v. Neundorfer, Inc., 837 F.2d 259, 267 (6th Cir. 1988) (holding 22-month delay in filing copyright infringement action did not rebut presumption of irreparable harm).

Since Sun filed its motion, Microsoft has begun shipment of Windows 98. Although Sun believes it is legally entitled to an order enjoining the distribution of Windows 98, Sun appreciates that the retail channels have been flooded with this incompatible product and that it is now in the hands of many innocent retailers and customers. To minimize the harm to these third parties, Sun is willing to modify its requested relief with respect to Windows 98 and IE 4.0. Sun requests an order enjoining Microsoft from distributing copies of its Windows 98 and IE 4.0 products 90 days after the date of the Court's order unless each such product includes a JAVATMtm) runtime implementation that passes Sun's compatibility test suite. For Windows 98 and IE 4.0, this means that Microsoft must implement JNI in a manner that passes the JCK 1.1a test suite. In the interim, Microsoft would be enjoined from distributing its incompatible Windows 98 and IE 4.0 products unless and until it takes reasonable steps to notify its customers of the Court's order and prominently posts notice of the corrective steps to be taken on its website. If Microsoft could show good cause that more than 90 days was needed, Microsoft could seek a reasonable extension from the Court.4 Sun does not seek recall of Windows 98 and IE 4.0 products which previously were distributed.

As for Microsoft's tool products, Visual J++ 6.0 and SDKJ 2.0 and 3.0, Sun seeks an order immediately enjoining further distribution until such products successfully pass Sun's compatibility test suites, including the tests for JNI, the Compiler Output Requirement test, and any other required test or requirement these products currently fail.5

Dated: October 20, 1998 DAY CASEBEER MADRID
WINTERS & BATCHELDER LLP

 

By:__________________________________
            Lloyd R. Day, Jr.

Attorneys for Plaintiff SUN MICROSYSTEMS, INC.

 


FOOTNOTES

1  Microsoft also does not dispute that all of these products generated 107 failures when Sun performed the JCK 1.1a "Signature Test" in May of this year. While Microsoft has since corrected the Signature Test failures, its products still do not pass the JCK 1.1a test suite. back to text

2  The TLDA is attached as Exhibit A to the Reply Declaration of Lee Patch. back to text

3  Microsoft's half-hearted claim of waiver based on Sun's acceptance of licensee fees also can be quickly dispatched. The TLDA provides that the Agreement may not be "waived, in whole or in part, except by a written instrument signed by the parties." TLDA at § 12.3; see also United States v. King Features Entertainment, Inc., 843 F.2d 394, 399 (9th Cir. 1988). back to text

4  The 90-day period is based on Microsoft's own estimate of the time required to develop, test, document and redistribute a revised version of Windows 98, Opp. at 22; Akerlind Decl., ¶ 12, as well as the time required by Microsoft to develop implementations that passed the Signature Test following the Court's March 24, 1998 Order. back to text

5  Since Microsoft's Developer Tools Division Marketing Manager estimates that the annual sales for its JAVATM tool product have been less than 10 million dollars and Visual J++ 6.0 has not been placed in "final release," Microsoft will suffer little disruption from such an order. back to text

*As used on this web site, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.