decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Oracle v. Google - Day 14 Filings - JMOL's Denied In Part ~mw
Thursday, May 10 2012 @ 11:15 PM EDT

On Thursday Judge Alsup rejected a number of items requested by Oracle and Google in their respective motions for judgment as a matter of law. (1119 [PDF; Text]) Judge Alsup denied Google's motion regarding rangeCheck, rejecting the notion that it was de minimis copying. On the other side of the equation, Judge Alsup denied Oracle's motion with respect to fair use (leaving Google's fair use defense intact for now), copying of API documentation (the specifications), and comment-copied files. There are a number of items remaining on the table for each party on which the judge has yet to rule.

That takes us to the issue of the copyright damages on rangeCheck. You will recall that Tuesday, in its response to the Court's questions, Oracle reversed field from what it had previously agreed and told the Court it deserved the right to obtain both statutory damages and infringer's profits with respect to rangeCheck. (1106 [PDF; Text]) Not surprisingly, Google has now fired back. (1114 [PDF; Text])

Google points out that Oracle's new request "contradict[s] Oracle’s prior concession to the Court that it had no remedy for any of its literal copying claims besides statutory damages." Pointing out that, contrary to Oracle's statement that the burden is on Google to show what portion of Android revenue is not associated with rangeCheck, Oracle must show a casual relationship between rangeCheck and that revenue, something Oracle has not done. As Google says, "Oracle might get kudos for audacity, but it misunderstands how copyright damages work."

Oracle is also wrong on the assertion it gets both statutory damages and infringer's profits. That is simply wrong under the law. They have to choose. Not surprisingly, this overreach by Oracle was filed by the Boies firm.

Google also mocks "Oracle's offer to give up its nonexistent disgorgement claim in exchange for a jury waiver by Google on “by far the most important” issue in the entire case, Oracle Br. [Dkt. 1106] at 1:19, is (to put it mildly) not serious." Google, for its part, offers to have the Court resolve not only Oracle's damages for any literal copying, but also for patent infringement, if Oracle prevails on any of its patent claims.

There were three additional filings today:

  • Google's latest copyright liability trial brief (1116 [PDF]);
  • Oracle's opposition to Google's motion for a new trial (1117 [PDF]); and
  • Oracle's brief responding to the Court's questions on copyrightability (1118 [PDF]).

Each of these are important, but will reserve comment on them until later.


**************

Docket

05/10/2012 - 1114 - RESPONSE to re 1106 Response ( Non Motion ) Response to Oracle's Brief re Copyright Damages by Google Inc.. (Van Nest, Robert) (Filed on 5/10/2012) (Entered: 05/10/2012)

05/10/2012 - 1115 - RESPONSE to ORACLE'S RESPONSE TO COURT'S REQUESTS FOR SOURCE CODE EXAMPLES by Oracle America, Inc.. (Muino, Daniel) (Filed on 5/10/2012) (Entered: 05/10/2012)

05/10/2012 - 1116 - TRIAL BRIEF May 10, 2012 Copyright Liability Trial Brief by Google Inc.. (Van Nest, Robert) (Filed on 5/10/2012) (Entered: 05/10/2012)

05/10/2012 - 1117 - RESPONSE (re 1105 MOTION for New Trial ON ORACLE'S CLAIM THAT GOOGLE IS LIABLE FOR INFRINGEMENT OF ORACLE'S COPYRIGHT ON THE STRUCTURE, SEQUENCE AND ORGANIZATION OF THE COMPILABLE CODE FOR THE 37 JAVA API PACKAGES ) filed byOracle America, Inc.. (Jacobs, Michael) (Filed on 5/10/2012) (Entered: 05/10/2012)

05/10/2012 - 1118 - RESPONSE to re 1062 Order, 1088 Order, 1057 Order Oracle's May 10, 2012 Brief Responding to Court's Questions on Copyrightability by Oracle America, Inc.. (Attachments: # 1 Exhibit A)(Jacobs, Michael) (Filed on 5/10/2012) (Entered: 05/10/2012)

05/10/2012 - 1119 - ORDER ON MOTIONS FOR JUDGMENT AS A MATTER OF LAW re 1043 Brief, filed by Google Inc., 1045 MOTION for Judgment as a Matter of Law Oracle's Corrected Rule 50(A) Motion at the Close of Evidence (WITH TABLES) filed by Oracle America, Inc.. Signed by Judge Alsup on May 10, 2012. (whalc1, COURT STAFF) (Filed on 5/10/2012) (Entered: 05/10/2012)


**************

1114

KEKER & VAN NEST LLP
ROBERT A. VAN NEST - # 84065
[email]
CHRISTA M. ANDERSON - # 184325
[email]
DANIEL PURCELL - # 191424
[email address telephone fax]

KING & SPALDING LLP
SCOTT T. WEINGAERTNER (Pro Hac Vice)
[email]
ROBERT F. PERRY
[email]
BRUCE W. BABER (Pro Hac Vice)
[address telephone fax]

KING & SPALDING LLP
DONALD F. ZIMMER, JR. - #112279
[email]
CHERYL A. SABNIS - #224323
[email address telephone fax]

IAN C. BALLON - #141819
[email]
HEATHER MEEKER - #172148
[email]
GREENBERG TRAURIG, LLP
[address telephone fax]

Attorneys for Defendant
GOOGLE INC.

UNITED STATES DISTRICT COURT
NORTHERN DISTRICT OF CALIFORNIA
SAN FRANCISCO DIVISION

ORACLE AMERICA, INC.,
Plaintiff,
v.
GOOGLE INC.,
Defendant.

Case No. 3:10-cv-03561 WHA

GOOGLE INC.’S RESPONSE TO
ORACLE’S BRIEF RE COPYRIGHT
DAMAGES

Dept.: Courtroom 8, 19th Floor
Judge: Hon. William Alsup


This Monday, after the jury delivered its verdict on copyright issues, Oracle announced it might seek disgorgement of Google’s profits based on Google’s use of a nine-line method called rangeCheck from a file called Arrays.java, which itself consists of over 3,000 lines of source code. This contradicted Oracle’s prior concession to the Court that it had no remedy for any of its literal copying claims besides statutory damages. RT 2775:25-2776:1 (Mr. Boies: “[T]hat, I believe, would only be statutory damages on [Verdict Form Question] 3”). Oracle’s about-face was even more puzzling because rangeCheck makes up an almost imperceptible fraction of the 15 million lines of code in the Android platform—less than .00006%, or six ten-millionths, of Android’s total content. It is inconceivable that this trivial method, which could be written by a good high-school programmer, was not even in Android when it was launched, and has not been in Android for over a year now, contributed even a penny to Android’s profits.

Understandably, the Court reacted skeptically to Oracle’s announcement, commenting that the idea that Oracle could be entitled to disgorgement for infringement of nine lines of code “borders on the ridiculous” and that it “would be way out there for [Oracle] to ask for that.” RT 2892:13, 23-24. But Oracle has never been shy, at any point in this case, to seek legally and logically unsupportable damages amounts. Doubling down on that strategy, Oracle has now filed a brief asserting that, because rangeCheck is part of Android, it can simply point to Google’s total Android revenues, sit back, and relax. According to Oracle, if Google is unable to prove how much of those aggregate Android revenues are attributable to the other 15 million-plus lines of Android code, as opposed to the nine lines of rangeCheck, Oracle would get the whole enchilada.

Oracle might get kudos for audacity, but it misunderstands how copyright damages work. Before the burden of deducting costs and apportioning profits shifts to Google, Oracle must prove an amount of gross revenue that is causally linked to the infringing work—which is rangeCheck (or at most the two TimSort files containing rangeCheck), not all of Android. Oracle has no such evidence and no witness who could be competent to offer it anyway. After Oracle’s damages expert failed to analyze literal-copying damages in either of his first two reports, the Court barred him from offering such testimony at trial. Jan. 9, 2012 Order [Dkt. 685] at 10. Given the trial record, no reasonable jury could conclude that rangeCheck generated any revenue.

1


A. Oracle has not carried its initial burden of offering evidence that Google made any
revenue from the infringing works—which are two files called TimSort and
ComparableTimSort, not the Android platform as a whole.

Oracle has no right to disgorgement of Google’s profits based on Google’s infringement of rangeCheck because it has no evidence that Google made any revenue attributable to the copyrighted work that was found infringed. See 17 U.S.C. § 504(b). Oracle has always tried to maximize its damages by presenting this case as an epic struggle between its entire Java platform and Google’s whole Android platform, but the Court has always—rightly—rejected that effort and directed Oracle to focus on the specific intellectual property and alleged infringing features at issue. Just before opening statements, the Court reiterated this basic point:

But, Mr. Jacobs, you must remember. I’m going to say to the jury many times in this case: The issue is not Java. It’s not Android. It’s very specific parts about Java that are protected, if at all, by copyrights or patents and very specific parts of Android that are accused. So if we start getting off onto this is Java versus Android, the judge is going to intervene and say it’s not.
RT 21:21-22:2 (emphasis added); see also July 22, 2011 Order Granting in Part Motion to Strike First Cockburn Report [Dkt. 230] at 5-6 (rejecting damages analysis based on purported harm to all of Java from the entirety of Android). Oracle’s current brief is a retread of this rejected theme.

The jury did not find that Google’s Android platform infringed Oracle’s Java platform. It found only that two Android files, TimSort and ComparableTimSort, infringed a single Java file called Arrays.java. See Final Charge to the Jury (Phase One) [Dkt. 1018] ¶ 29, at 15 (“For purposes of Question No. 3, the “work as a whole” is the compilable code for the individual file except for the last two files listed in Question No. 3, in which case the “work as a whole” is the compilable code and all the English-language comments in the same file.”); Special Verdict Form [Dkt. 1018] at Question 3(a) (calling for verdict on infringement by TimSort files). Indeed, it was Oracle that asked, over Google’s objection, for the instruction that led to this specific finding. RT 2414:20-2418:13 (Charging Conference). The Court overruled Google’s objection and gave Oracle the instruction it requested. Id. Oracle undoubtedly wanted a charge that defined the “work as a whole” narrowly—as individual Java files, not the entire Java platform—in order to increase its chances of an infringement verdict on its literal copying claims. It got what it wanted with respect to rangeCheck; now it must live with the consequences for damages purposes.

2


The expressly limited scope of the jury’s verdict means we are no longer talking generally about Google’s “Android revenues” with respect to wrongful profits. Oracle must prove that Google made an identifiable amount of revenue from the infringing work—the two Android files containing the rangeCheck method. Oracle never addresses this standard, although it was clearly laid out by the Ninth Circuit in Polar Bear Prods., Inc. v. Timex Corp., 384 F.3d 700, 710-12 (9th Cir. 2004), a case Oracle discusses (and misapprehends) at some length. In Polar Bear, the Ninth Circuit explained that, “[a]lthough the statute references only the broad term ‘gross revenue,’ to conclude that a copyright plaintiff need only provide the company’s overall gross revenue, without regard to the infringement, would make little practical or legal sense.” Id. at 711. Instead, “the causation element of the statute serves as a logical parameter to the range of gross profits a copyright plaintiff may seek.” Id. “The standard is straightforward: a copyright plaintiff is bound to no more and no less than its statutory obligation to demonstrate a causal nexus between the infringement and the profits sought.” Id. at 712. Even where an infringer “derived some quantum of profits because its infringement was part of” a larger part of its business, “it nevertheless remains the duty of the copyright plaintiff to establish a causal connection between the infringement and the gross revenue reasonably associated with the infringement.” Id. at 715 (citing On Davis v. The Gap, Inc., 246 F.3d 152, 160 (2d Cir. 2001)) (emphasis added). “Only then would [the infringer] bear the responsibility for apportioning profits.” Id. As Judge Posner wrote nearly thirty years ago,

It was not enough to show [defendant’s] gross revenues from the sale of everything he sold, which is all, really, that [plaintiff] did. If General Motors were to steal your copyright and put it in a sales brochure, you could not just put a copy of General Motors’ corporate income tax return in the record and rest your case for an award of infringer’s profits.
Taylor v. Meirick, 712 F.2d 1112, 1122 (7th Cir. 1983). In other words, Oracle is seeking to shift the burden too soon. Before Google has to make any showing, Oracle first must prove up not Google’s gross revenue generally, or even Google’s gross revenue from the Android platform as a whole, but an identifiable amount of gross revenue that is causally linked to the infringement.

Here, Oracle has never offered any evidence that Google generated any revenues from use of the rangeCheck method, or the two Android files containing that method, or the API package

3


containing those files, or the Android core libraries, or any other possibly divisible component of the Android platform. Neither does it have a witness who could offer such evidence. Oracle has always shot for the moon, choosing to offer evidence only of Google’s gross revenue from the Android platform as a whole. Oracle’s damages expert Dr. Iain Cockburn could have presented a gross revenue figure allegedly linked to rangeCheck in either his of his first two damages reports, but he never made the attempt. Instead, after ignoring copyright damages altogether in his first report, Dr. Cockburn’s second report offered an opinion only as to alleged gross revenue from all Android ad and applications sales. Second Cockburn Report (Sept. 15, 2011) at 186-88, ¶¶ 463-68, & Ex. 22 (presenting Android gross revenue calculation through 2011); Third Cockburn Report (Feb. 9, 2012) at 235-27, ¶¶ 643-49, & Ex. 22 (same). Indeed, based on Oracle’s and Dr. Cockburn’s deliberate choice to focus on Android revenues generally, the Court barred Oracle from offering any expert opinion on damages for any of Oracle’s literal copying claims, including the claim for infringement of rangeCheck.

Dr. Cockburn has not adequately valued that [allegedly copied] code in his report and cannot do so at trial. This order holds that the jury will be instructed that if Google is found not liable for infringing the selection, arrangement, and structure of the API packages, then Dr. Cockburn’s copyright damages analysis is inapplicable.
Jan. 9, 2012 Order [Dkt. 685] at 10. Oracle chose to maximize its potential damages recovery by focusing on the structure, sequence, and organization of the Java API packages and using the alleged literal copying as window dressing. As a result, it has no evidence to sustain its burden of proving Google’s revenue causally linked to the infringement.

Oracle’s only response to this is glib and unavailing. It begins its discussion of case law with On Davis 246 F.3d at 160, but why it does so is a mystery, because that case directly and explicitly refutes its argument. On Davis explains that, if a copyright owner proved infringement of a poem, it would satisfy its initial burden by identifying the infringer’s gross revenue from “the sale of the anthology containing the infringing poem.” Id. Fair enough. But that case also makes clear that “we do not think the plaintiff’s statutory burden would be discharged by submitting the publisher’s gross revenue resulting from its publication of hundreds of titles, including trade books, textbooks, cookbooks, etc.” Id. The latter example is far closer to what Oracle is trying to

4


do here, but even that comparison significantly understates the vast difference between nine lines of rangeCheck and the 15 million lines in the Android platform. If the rangeCheck method were analogous to a poem, the “anthology” would be the 900-line TimSort file; it would certainly not be Android. The larger platform includes not only 168 API packages (of which rangeCheck is but one method in two class files), but an operating system, an applications framework, a virtual machine, and numerous applications. It is no mere poetry anthology. It is an entire warehouse of books, videos, music, and all the necessary apparati for reading and playing all those media. Neither On Davis nor any other case Oracle cites provides any basis to find a causal link between something as minute as rangeCheck and gross revenues from something as massive as Android.

Moreover, rangeCheck is not like a poem in an anthology. Oracle’s counsel admitted this in court just yesterday: “Obviously, software is not a symphony. Software is not a poem.” RT 3368:17 (Jacobs). When consumers buy a poetry anthology, it is reasonable to assume they do so because of the content of that anthology—and equally reasonable to infer that a single infringing poem might have played some causal role in the purchase. But there is no evidence supporting the argument, and it would make no sense to assume, that Google’s Android-related revenues are somehow connected to the presence of rangeCheck on some Android devices. For Google to make money from Android, it is necessary but not sufficient for a consumer to buy an Android phone, and there is no evidence that rangeCheck has caused any consumer to buy a phone. But even if there were, Google does not make money off any phone until a consumer uses that phone to conduct a Google search, tap on a Google-hosted advertisement, or purchase an application from GooglePlay (formerly Android Market). There is (and could be) nothing in the record to support a finding that rangeCheck plays any role in enabling, or persuading a consumer to access, any service that generates revenue for Google. Oracle has never tried to offer such evidence.

B. Given the evidence in the record, no reasonable jury could possibly find a causal link
between Google’s use of rangeCheck and any Android revenues.

In a more fundamental sense, Oracle’s failure of proof on Google’s gross revenues related to rangeCheck is beside the point, because the argument that any of Google’s Android profits could possibly be the result of Google’s use of the nine-line rangeCheck method in Android

5


defies belief. No reasonable jury could reach that conclusion. To the contrary, the record makes clear that rangeCheck is responsible for exactly 0.0% of Google’s revenues.

To begin with, as the Court noted after the jury rendered its verdict, rangeCheck makes up a truly tiny fraction of the Android platform in a quantitative sense. It is nine lines of source code out of a platform that contains more than 15 million lines, RT 2179:19-23 (Astrachan), amounting to .00006% of Android. That does not qualify even as de minimis.

But rangeCheck is indisputably insignificant as a qualitative matter too. The testimony at trial, from both sides of the aisle, has been unequivocal that rangeCheck is a “very short simple method” that checks three parameters of an array: the starting point, the end point, and that the end point is greater than the starting point. RT 813:7-8, 815:5-9 (Bloch). Josh Bloch, who wrote rangeCheck, testified that “[a]ny competent high school programmer could write” that method. RT 815:13-16 (Bloch). Even Oracle’s expert Dr. Mitchell conceded that “a good high school programmer” could write rangeCheck with guidance. RT 1316:24-25 (Mitchell).

In addition to being trivial to create and easily replicable by a beginner, rangeCheck offers no performance benefit to Android. The rangeCheck method is nine lines out of a file called TimSort. Bloch testified that TimSort is useful to Android because it makes array sorts much faster. RT 812:19-813:3 (Bloch). But Bloch also made clear that not one bit of that performance improvement is due to rangeCheck, as opposed to the other 900-plus lines of code in TimSort. RT 814:1-4. In fact, rangeCheck is a “private method” that is “not part of the API.” Its declaration cannot be called from outside of the TimSort class, only from within that class, so it cannot have an effect on any other file in Android. RT 813:12-25 (Bloch). Oracle did not cross-examine Bloch on these points, much less offer evidence to contradict him.1

Moreover, rangeCheck was not even in Android when Google announced the platform in November 2007 and made its code available to handset partners for inclusion on phones. Neither was rangeCheck in Android when the first Android phones were released in October 2008. Bloch

_________________________

1 Dr. Mitchell testified that “I found a number of other source code in other files that called that function,” RT 1329:13-14 (Mitchell), but the phrase “a number of other source code” is barely intelligible. Dr. Mitchell never actually identified any Android file outside of TimSort that called rangeCheck, or explained how that could be possible for a private method like rangeCheck.

6


did not even join the Android team until December 2008 or January 2009. RT 733:8-11 (Bloch). He finished TimSort at some point in early 2009, at which point he contributed that file both to Sun’s OpenJDK project and to Android. RT 822:4-9 (Bloch). Further, rangeCheck has been out of the current release of Android for about a year. RT 825:8-23 (Bloch). The proven facts that both the platform’s initial adoption by handset makers and carriers and its recent growth happened in the absence of rangeCheck are additional reasons why no reasonable jury could link any of Android’s profits to the temporary inclusion of those nine lines in Android.

Oracle’s lone counterargument is that rangeCheck must be important to Android because that function is purportedly called 2,600 times when powering on a smartphone or starting an emulator. Oracle Br. at 3:13-17 (citing RT 1329:5-21 (Mitchell)). This is vacuous. It is meaningless to cite an arbitrary number of calls to a given method in the absence of context, and neither Dr. Mitchell nor any other witness testified as to whether rangeCheck was called any more or less than any other method in the Android software, during the startup sequence or any other time. In the world of sophisticated and ultrafast computer microprocessors, 2,600 calls to a function during the startup sequence of a smartphone could be a low number relative to other functions. There is no evidence in the record to enable the Court or the jury to tell either way. Equally, just because a software function is called frequently does not mean it is important; it would stand to reason that a trivial nine-line piece of code that accomplishes a Programming 101 parameter test, like rangeCheck does, might be invoked fairly frequently. Dr. Mitchell never opined that there is any correlation between the number of calls to a function and its significance, much less that rangeCheck itself is significant. He certainly did not say that rangeCheck offered a performance boost to Android—and Bloch, who wrote it, made clear it does not.

For all those reasons, even if Oracle had any evidence (and it doesn’t) of Google revenue causally linked to the TimSort files, it would make no difference. Google has carried its burden of proving that none of its Android profits are attributable to rangeCheck.

C. Oracle must elect either statutory damages or disgorgement—it cannot have both.

Although it does not press this point in its current brief, Oracle’s counsel was wrong as a matter of copyright law to argue in court on Monday that Oracle could recover both statutory

7


damages and disgorgement for copyright infringement. RT 2891:25-2892:3 (Mr. Boies: “[W]ith respect to [rangeCheck], the only thing we would claim would be statutory damages. But, of course, in copyright you get both your damages plus you get infringer’s profits.”). The plain language of the Copyright Act makes clear that a copyright plaintiff may elect to pursue either (1) actual damages and, as long as there is no double-counting, “profits of the infringer attributable to the infringement” or (2) statutory damages—but not both. 17 U.S.C. § 504(a) (infringer is liable for either actual damages plus the infringer’s wrongful profits or statutory damages); id. § 504(b) (defining wrongful profits); id. § 504(c)(2) (plaintiff may elect statutory damages “instead of actual damages and profits”). Based on its brief arguing for recovery of Google’s profits, Oracle appears to have elected disgorgement, and any award of damages or profits, even a nominal award of $1, would preclude any recovery of statutory damages. Moreover, as already discussed, Oracle’s election to seek disgorgement would result in Oracle recovering nothing, because it cannot meet its initial burden of linking any of Google’s revenues to rangeCheck.

D. Google does not waive its right to a jury trial on its fair use defense, but would be
willing to agree to let the Court decide Oracle’s entitlement to damages for
infringement of rangeCheck or either of the two patents-in-suit.

As Google indicated on Tuesday when it filed its motion for a new trial on the entirety of Oracle’s claim for infringement of the structure, sequence, and organization of 37 Java API packages, Google is unwilling to waive its right to a jury trial on any aspect of that claim, including its fair use defense. Given that Oracle has no conceivable basis to seek anything other than statutory damages for infringement of rangeCheck, Oracle’s offer to give up its nonexistent disgorgement claim in exchange for a jury waiver by Google on “by far the most important” issue in the entire case, Oracle Br. [Dkt. 1106] at 1:19, is (to put it mildly) not serious.

That said, and although the parties have a Seventh Amendment right to a jury trial even on statutory damages for copyright infringement, see Feltner v. Columbia Pictures Television, Inc., 523 U.S. 340, 355 (1998), Google would consent to have the Court resolve not only Oracle’s damages for any literal copying, but also for patent infringement, if Oracle prevails on any of its patent claims. Oracle is entitled to little or no damages on rangeCheck, and the Court’s Rule 706 damages expert Dr. Kearl has estimated Oracle’s damages for the ‘520 patent at $80,000. Even

8


as to the ‘104 patent, all the various experts estimate modest damages, in the range between $2.1 million (Google’s expert Dr. Leonard’s low-end estimate) to $13.275 million (Oracle’s Dr. Cockburn’s estimate). Dr. Kearl is at $2.72 million for the ‘104 patent, much closer to the low end. Further, as the Court knows, the ‘104 patent currently stands rejected by the U.S. Patent & Trademark Office (and is set to expire in December of this year). Accordingly, Google proposes that the Court assess damages for literal copying and patent infringement, if any, after the USPTO issues its final office action on the ‘104 patent.

Dated: May 10, 2012

KEKER & VAN NEST LLP

/s/ Robert A. Van Nest
By: ROBERT A. VAN NEST

Attorneys for Defendant
GOOGLE INC.

9



1115

MORRISON & FOERSTER LLP
MICHAEL A. JACOBS (Bar No. 111664)
[email]
KENNETH A. KUWAYTI (Bar No. 145384)
[email]
MARC DAVID PETERS (Bar No. 211725)
[email]
DANIEL P. MUINO (Bar No. 209624)
[email address telephone fax]

BOIES, SCHILLER & FLEXNER LLP
DAVID BOIES (Admitted Pro Hac Vice)
[email address telephone fax]
STEVEN C. HOLTZMAN (Bar No. 144177)
[email address telephone fax]

ORACLE CORPORATION
DORIAN DALEY (Bar No. 129049)
[email]
DEBORAH K. MILLER (Bar No. 95527)
[email]
MATTHEW M. SARBORARIA (Bar No. 211600)
[email address telephone fax]

Attorneys for Plaintiff
ORACLE AMERICA, INC.

UNITED STATES DISTRICT COURT
NORTHERN DISTRICT OF CALIFORNIA
SAN FRANCISCO DIVISION

ORACLE AMERICA, INC.
Plaintiff,
v.
GOOGLE INC.
Defendant.

Case No. CV 10-03561 WHA

ORACLE’S RESPONSE TO
COURT’S REQUESTS FOR
SOURCE CODE EXAMPLES

Dept.: Courtroom 8, 19th Floor
Judge: Honorable William H. Alsup


Oracle provides the following responses to the Court’s request for source code examples.

I. METHOD SSO

For an example comparing the source code for two classes, Oracle directs the Court to the
class javax.crypto.CipherInputstream. Compare TX 623 at licenseebundlessource-
bundles jdk_sec-1_5_0-src-scsl.zipjce1.5.0-
srcsrcshareclassesjavaxcryptoCipherInputStream.java with TX 46.23 (Android, pre-printed).

II. INTERFACE SSO

For an example comparing the source code for two interfaces, Oracle directs the Court to
the interface javax.net.ssl.X509TrustManager. Compare TX 623 at licenseebundlessource-
bundles jdk_sec-1_5_0-src-scsl.zipjsse1.5.0-srcsrcsharejavaxnetsslX509TrustManager.java
with TX 46 at GOOGLE-00-00000526dalviklibcorex-
netsrcmainjavajavaxnetsslX509TrustManager.java.

III. FIELD SSO

For an example comparing the source code for two classes containing fields, Oracle points
the court to the class java.nio.charset.CodingErrorAction. Compare TX 623 at
licenseebundlessource-bundlesjdk-1_5_0-fcs-src-b64-windows-
15_sep_2004.zipj2sesrcshareclassesjavaniocharsetCodingErrorAction.java with TX 46 at
GOOGLE-00-
00000526dalviklibcorenio_charsrcmainjavajavaniocharsetCodingErrorAction.java.

Dated: May 10, 2012

MORRISON & FOERSTER LLP

By: /s/ Daniel P. Muino

Attorneys for Plaintiff ORACLE AMERICA, INC.



1119

IN THE UNITED STATES DISTRICT COURT
FOR THE NORTHERN DISTRICT OF CALIFORNIA

ORACLE AMERICA, INC.,
Plaintiff,
v.
GOOGLE INC.,
Defendant.

No. C 10-03561 WHA

ORDER ON MOTIONS
FOR JUDGMENT AS A
MATTER OF LAW

For the reasons stated at the May 9 hearing, Oracle’s motion for judgment as a matter of law regarding fair use, API documentation, and comment-copied files is DENIED; Google’s motion for judgment as a matter of law regarding rangeCheck is DENIED.

IT IS SO ORDERED.

Dated: May 10, 2012.

/s/William Alsup
WILLIAM ALSUP
UNITED STATES DISTRICT JUDGE




  


Oracle v. Google - Day 14 Filings - JMOL's Denied In Part ~mw | 162 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
This is not the corrections thread... but... "casual" --> "causal". [n/t]
Authored by: Anonymous on Thursday, May 10 2012 @ 11:43 PM EDT
.

[ Reply to This | # ]

What?!
Authored by: Anonymous on Thursday, May 10 2012 @ 11:55 PM EDT
How is rangeCheck not de minimis? That's completely absurd. Its 9 lines
out of millions, its functional with virtually no creative aspect at all.

Sometimes I think the legal system makes no sense at all.

[ Reply to This | # ]

SSO Code examples
Authored by: dio gratia on Thursday, May 10 2012 @ 11:56 PM EDT
Those SSO code samples don't happen to be from a third party or follow an
external standard, do they?

You could note there is for instance a gcc implementation of java that has a
X509TrustManager.java that's copyright the Free Software Foundation. (e. g.
https://svn.physiomeproject.org/svn/opencmissextras/gfortran/trunk/packages/gcc/
gcc-4.6.1/libjava/classpath/javax/net/ssl/X509TrustManager.java).

There's also a FSF owned and authored version of CipherInputStream.java. (
http://opensource.apple.com/source/gcc/gcc-5493/libjava/javax/crypto/CipherInput
Stream.java)

And CodingErrorAction.java owned by FSF from 2002.
(http://opensource.apple.com/source/gcc/gcc-1640/libjava/java/nio/charset/Coding
ErrorAction.java)

Those SSO's wouldn't happen to enclose all possible expressions, now would
they?

[ Reply to This | # ]

Corrections Here
Authored by: feldegast on Friday, May 11 2012 @ 12:11 AM EDT
So they can be fixed

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

News picks
Authored by: feldegast on Friday, May 11 2012 @ 12:12 AM EDT
Please make links clickable

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Tweets from the courtroom
Authored by: feldegast on Friday, May 11 2012 @ 12:14 AM EDT
Main feed
https://twitter.com/#!/Feldegast

Raw tweet feed
https://twitter. com/#!/Feldegast/oracal-vs-google- trial

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

the purpose of rangeCheck
Authored by: Anonymous on Friday, May 11 2012 @ 12:14 AM EDT
rangeCheck is primarily a way of catching errors. Instead of the system failing
at some random later time or in a random way, it tells the user exactly where in
the code a mistake occurred.

That's important, it means almost all or actually all of those 2600 calls to
rangeCheck during Android start up can be assumed to be redundant, any errors
they ever caught having been corrected before Android shipped on any device.
Those calls don't add value, they actually slow down Android while serving no
useful purpose at all.

Maybe Oracle should collect negative damages on rangeCheck, paying Google a tiny
amount?

[ Reply to This | # ]

Off topic
Authored by: feldegast on Friday, May 11 2012 @ 12:15 AM EDT
Please make links clickable

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Comes transcribing
Authored by: feldegast on Friday, May 11 2012 @ 12:16 AM EDT
Thank you for your support

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Spring is in the air!
Authored by: jbb on Friday, May 11 2012 @ 12:41 AM EDT
Oracle's copyright brief says:
The Court is correct that this is what SpringSource did:
There’s a company in the UK that built its own Java environment. And they used the Java programming language, but they created their own set of APIs, prewritten programs. And that other environment is called Spring. So Spring uses the Java programming language, but it doesn’t use the Sun-created APIs. They have their own set of APIs and their own set of prewritten programs.
(RT 290:25-291:6 (Ellison).) Of course, creating new APIs was much more time consuming and expensive than what Google did here in its rush to bring Android to market:
Q. Does it take a period of time and expense and resources if you’re going to go that route?

A. Yeah. Spring had to design their own APIs, and then they had to teach the developer community about these new APIs. And they had to persuade them that their collection of APIs, their library of programs, was in some ways better than the library of programs that Oracle and Sun had produced.

I don't think the part I highlighted is true. I believe SpringSource (like almost everyone else in the world who makes Java APIs) used the existing Sun APIs and created new APIs on top of them. They did not re-implement the functionality of the Sun APIs with an incompatible interface which is what Oracle is saying Google should have done.

---
Our job is to remind ourselves that there are more contexts
than the one we’re in now — the one that we think is reality.
-- Alan Kay

[ Reply to This | # ]

Look over there!
Authored by: Anonymous on Friday, May 11 2012 @ 12:42 AM EDT
The source code example filing is hilarious. "Oh, you want an example of
SSO? Well, take a look at these files... or maybe these ones."

No explanation of just what exactly the court is meant to be looking for, heaven
forbid that they actually specify just what the SSO is or explain it with an
example.

[ Reply to This | # ]

CodingErrorAction
Authored by: Anonymous on Friday, May 11 2012 @ 12:42 AM EDT

You have got to be kidding. CodingErrorAction is so trivial that it shouldn't even be allowed to be copyrighted.

[ Reply to This | # ]

CipherInputStream
Authored by: Anonymous on Friday, May 11 2012 @ 12:56 AM EDT

I seem to recall that CipherInputStream came from bouncycastle. However, CipherInputStream shows this class as of Java 6. Again, this class is so trivial that a copyright should n't be valid

[ Reply to This | # ]

X509TrustManager
Authored by: Anonymous on Friday, May 11 2012 @ 01:01 AM EDT

I am so glad Oracle directed the court to look at this class. X50 9Trus tManager is the complete source for this interface and illustrates why a copyright on this is just nuts.

[ Reply to This | # ]

Methods, Interfaces & Fields?
Authored by: Anonymous on Friday, May 11 2012 @ 01:19 AM EDT
So... the only SSO they've identified--methods, interfaces & fields--is
absolutely, completely functional in nature? They couldn't find anything
copied, in all of Java, that didn't absolutely need to be copied for
compatibility?

This judge is too smart for that kind of crap. This is pathetic and Oracle
deserves to be laughed out of court.

[ Reply to This | # ]

Obligatory scraps for Oracle?
Authored by: Anonymous on Friday, May 11 2012 @ 02:45 AM EDT
I'm afraid judges feel compelled, as a vacuous demonstration of impartiality, to
dole out meritless scraps to one side or the other, to avoid being reversed on
appeal, e.g., the nine lines. Or worse, being saddled with the retrial. Would
like to think that won't happen here.

[ Reply to This | # ]

De Minimis Copying of Math...
Authored by: sproggit on Friday, May 11 2012 @ 03:00 AM EDT
Many people writing articles or comments here at Groklaw have argued repeatedly
that "software is math" and that because mathematics can't be
patented, then neither should software.

Anyone who understands the binary operations that take place within every modern
processor will understand this view, but it did remind me of an important point
with respect to the instant case.

OracleUSA have charged Google with literal or near-literal copyright
infringement of code originally owned by Sun. But when we think about the actual
code itself, we may see that there will be certain functional components that
are simple to implement in any C-like language:

We've contemplated math operations such as the square root function [ sqrt() ]
here before... But what about string manipulations? How about
left($inputString,%trimLength), right($inputstring,%trimLength),
mid($inputString,%offSet,%trimLength) and so on?

What about the annoying little bell tone, beep()?

If we were to pick one of these functional primitives and then go to a series of
programming languages and pull the source code for the function, exactly how
diverse would we expect them to be? There are literally thousands of programming
and scripting languages in use in the world today, ranging [forgive the pun]
from the well known and popular (COBOL,FORTRAN,C,JAVA,PERL,PHP,etc) through to
esoteric scripting languages that may exist only within a given application. The
point being that most if not all computer languages written today have common
underpinnings, and math functions are common to many computer languages, because
many have to handle mathematical processing.

These logical primitives are like the nucleotides in DNA. Whilst every living
creature on the earth has a unique DNA pattern, every unique DNA fingerprint is
made up of the same building blocks, called nucleotides.

In essence, Oracle are trying to copyright the nucleotides of software, arguing
that they are in fact trying only to copyright their unique DNA. They are
incorrect, and they know it.

[ Reply to This | # ]

copying of API documentation (the specifications), and comment-copied files?
Authored by: Anonymous on Friday, May 11 2012 @ 05:22 AM EDT
Ok im confused with this - didnt the jury say that google didnt infringe on
these?

[ Reply to This | # ]

'a case Oracle discusses (and misapprehends) at some length'
Authored by: Ian Al on Friday, May 11 2012 @ 06:51 AM EDT
Oh... that is from the BS&F tome, 'Law 101', that we first saw in SCO v.
Novell.

It's so warming to see that, again. It's almost homely.


See? I can be almost as scornful as M & F on an off day!

Oh, almost forgot.

/scorn

---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid!

[ Reply to This | # ]

Oracle v. Google - Day 14 Filings - JMOL's Denied In Part
Authored by: Anonymous on Friday, May 11 2012 @ 06:53 AM EDT
From Document1116 Page23/25:
[...]In addition to those items, the
SSO of the Android APIs for the 37 packages at issue adopts
substantially the same “exceptions”
for methods (i.e., the methods “throw” or generate the same
error messages),[...]

I am surprised that Google used the word "messages" for
exceptions. This gives the impression that those messages
could be copyrighted. Exception however don't have any
text-message.

IMO it would have been better to write: [...] or generate
the same error objects/classes.

[ Reply to This | # ]

Dkt 1116 Vs Dkt 1118
Authored by: Anonymous on Friday, May 11 2012 @ 07:10 AM EDT
Answers 16 questions about Java

From Google

A statement of facts, with support.

From Oracle

A woolly statement of wishful thinking, with indirect support

Here's hoping the Judge does not decide he needs to 'compromise' between these
two views.

[ Reply to This | # ]

Oracle v. Google - Day 14 Filings - JMOL's Denied In Part
Authored by: Anonymous on Friday, May 11 2012 @ 07:13 AM EDT
From Document1118:

[...]For example, the methods have parameters. Sometimes the
parameter names are different. Surprisingly, they’re the
same in probably two-thirds of the cases, even though that’s
not necessary for the library to be used in the same way by
programmers.[...]

Surprisingly?

LOL

[ Reply to This | # ]

Oracle v. Google - Day 14 Filings - JMOL's Denied In Part
Authored by: Anonymous on Friday, May 11 2012 @ 07:33 AM EDT
From 1118 page7:

[...]Examining the code alone, the method header seems straightforward enough, taking two parameters and returning a value:
public Matcher appendReplacement(StringBuffer sb, String replacement)
Id. But this seemingly simple header is followed by several paragraphs of specification text to explain how to use it and how it works with other methods in the Matcher class, with the Pattern class elsewhere in the java.util.regex package, and with the StringBuffer class in the java.lang package. [...]

Isn't this destroying their case? I.e. saying that they want to copyright the idea itself?

[ Reply to This | # ]

Oracle v. Google - Day 14 Filings - JMOL's Denied In Part
Authored by: Anonymous on Friday, May 11 2012 @ 07:42 AM EDT
1118 page13

It would be wrong to say that a class or method is somehow “core” to the language simply because another class refers to it.

WHAT????

[ Reply to This | # ]

Oracle v. Google - Day 14 Filings - JMOL's Denied In Part
Authored by: Anonymous on Friday, May 11 2012 @ 07:49 AM EDT
Would be interesting to know what a java language designer
says about the APIs.

I would suppose that they thought that referencing anything
inside java.lang, java.util... would be without any
consequences as those packages were already part of the
language.

Would they treat (would have treated) proposals differently
based on which packages were referenced.

[ Reply to This | # ]

Oracle v. Google - Day 14 Filings - JMOL's Denied In Part
Authored by: Anonymous on Friday, May 11 2012 @ 08:08 AM EDT
In Question 13 oracle says that Google only copied some APIs
but for instance did not copy java.awt.* or javax.swing.*.

A casual Java programmer wouldn't even consider using a
different class for the APIs Google copied. (Or at least
would assume that they existed).

Interestingly OTOH java.awt.* AND javax.swing are already
competing packages. You usually never use them at the same
time.

In addition there are multiple other GUI packages
(org.eclipse.swt or com.trolltech.qt.gui or ...).

When creating a GUI you usually make a decision, which of
those packages you want to use. (And it usually isn't
java.awt.)

The same argument holds for the other packages Google chose
to not include in Android. They are packages a typical
Android java program would either not need (javax.print.*)
or where it is common to use a different package.

[ Reply to This | # ]

rangeCheck - are they serious!
Authored by: TiddlyPom on Friday, May 11 2012 @ 09:43 AM EDT
I'm not sure whether I have got the right bit of code but are they talking about this bit of code (which I won't copy here ;) )?

Similar code is as follows:
private static void checkBounds(int lenItem, int startPos, int endPos)
{
   if (startPos > endPos)
    throw new MyOwnException("startPos(" + startPos + ") > endPos(" + endPos +")");

   if (startPos < 0)
    throw new Different1Exception(startPos);

  if (endPos > lenItem)
    throw new Different2Exception(endPos);
}
I had code of this exact pattern in the earliest BASIC programs I wrote (in the early 1980's) and Pascal + Ada (in University) + probably every other piece of code I wrote since - especially C# or Java code templates.

How can they possibly get away with this ridiculous claim!

Let's do this in Ada 95 as well for a laugh (forgive me if I get the syntax wrong - it's been a while)
procedure checkBounds(lenItem : in integer, startPos : in integer, endPos : in integer) is
   MyException : exception;
begin
   if startPos > endPos then
      raise MyException with "Invalid startPos(" & integer'image(startpos) & ")" > endPos(" & integer'image(endPos) & ")";
   end if;

   if startPos < 0 then
      raise MyException with "startPos(" & integer'image(startpos) & ") < 0";
   end if;

   if startPos > lenItem then
      raise MyException with "startPos(" & integer'image(startpos) & ")" > lenItem(" & integer'image(lenItem) & ")";
   end if;
end checkBounds;
This is utterly ridiculous and Oracle know it.

---
Support Software Freedom - use GPL licenced software like Linux and LibreOffice instead of proprietary software like Microsoft Windows/Office or Apple OS/X

[ Reply to This | # ]

Who owns rangecheck and timsort?
Authored by: Anonymous on Friday, May 11 2012 @ 09:53 AM EDT
He finished TimSort at some point in early 2009, at which point he contributed that file both to Sun’s OpenJDK project and to Android. RT 822:4-9 (Bloch).
I have not seen any documentation of copyright ownership except that saying it was donated. So how did this get into OpenJDK if he was employed by Google at the time?
If he signed the required Oracle Contributor Agreement (OCA), then the OpenJDK contribution page says (emphasis added):
The OCA gives Oracle and the Contributor joint copyright interests in the code. The Contributor retains copyrights while also granting those rights to Oracle as the Community's sponsor.
Alternative if he signed the older Sun Contributor Agreement (emphasis added):
You hereby assign to Sun joint ownership in all worldwide common law and statutory rights associated with the copyrights, copyright applications and copyright registrations in Your Contribution.
Alluding to what others have commented before, under either of these agreements Block (Google?) still owns the code so the only way Oracle can have exclusive rights is that the copyrights were officially transferred to Oracle.

But if he signed neither then what???

[ Reply to This | # ]

Copyright conflict?
Authored by: Anonymous on Friday, May 11 2012 @ 10:10 AM EDT

Has Oracle established that it has exclusive copyright over that rangeCheck method? Some quick Googling finds that exact method in two different open source packages built circa 1999:

CERN Colt Project - http://ac s.lbl.gov/software/ colt/index.html in file Sorting.java (http://www.do cjar.com/html/api/cern/colt/Sorting.java. html) Copyright CERN

JORAM JMS Messaging Project - http://joram.ow2.org/ in file Arrays.java (ht tp://joram.ow2.org/current/joramdox/html/_arr ays_8java- source.html) Copyri ght BULL/INRIA

[ Reply to This | # ]

  • Nice find! - Authored by: Anonymous on Friday, May 11 2012 @ 04:22 PM EDT
Caution regarding BoiesAnnoyanceSyndrome startegy
Authored by: mirrorslap on Friday, May 11 2012 @ 10:52 AM EDT
Now that Oracle has lost their beeelions of imaginary dollars, the strategy
that I suspect Mr. Boies is using is this: throw as many ridiculous
arguments before the judge to try to bring exasperation to the surface, and
then twist said vexation into a judicial bias appeal.

[ Reply to This | # ]

Re. Ora-Google-1114.pdf
Authored by: BJ on Friday, May 11 2012 @ 12:09 PM EDT
"just because a software function is called frequently does not mean it is
important; it would stand to reason that a trivial nine-line piece of code that
accomplishes a Programming 101 parameter test, like rangeCheck does,
might be invoked fairly frequently."

It is testimony to Van Nest's (et al.) wit and professionalism that they aren't
using the phrase "does not mean it is important from an
inventiveness-point-of-view"...

Because there IS (even Van Nest would admit, presume I) some relation
between 'important' and 'frequency'.

bjd


[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )