

Our first report from the courthouse in Oracle v. Google is in. Witnesses today are Professor Owen Astrachan once again, and then Mark Reinhold, and Tiki Dare. Then Google rests, and Oracle begins its rebuttal with Mark Reinhold being brought back, and then Dr. John Mitchell again, and ending with Safra Katz. The day opens with this wonderful judge saying in open court that he made a mistake yesterday, and he wants to correct it. He said that Google would be held to its earlier statement that it wasn't challenging Oracle's ownership of the copyrights. Now, obviously because the US Copyright Office has only a blank CD of whatever Oracle/Sun filed with it, he says he's leaving that issue open for now. In turn, Oracle says it is no longer describing the copyright registration as a collective work. It claims it never relied on that. They wrote it, but that theory is now dead, they offer, thanks to the incredible lawyering of Robert Van Nest and his team, who noticed their mistake in the copyright filings. Oracle also says it is no longer seeking a package-by-package ruling on infringement as it relates to code. What they want is that documentation be treated similarly to code. They probably heard the judge yesterday tell Google they'd probably lose on the manuals. And Oracle now says it will let both code and documentation be compared with the same definition of "work as a whole." So Oracle is backing off somewhat, or you could view it that it is trying to strengthen its case after a devastating day yesterday. Robert Van Nest then stands up and says this is the first time Google's heard of the change in Oracle's position. He'd like time to confer and talk about the exhibits. The judge says he'll think about Oracle's suggestion. What does it mean overall? It means that yesterday, Google kicked Oracle's butt, as they say in the vernacular.



Jump To Comments [Update 1, Update 2, Update 3

Update 4, Update 5, Update 6

Update 7, Update 8] Here's that early morning discussion, from our reporter in the courtroom, xbl: 4/27/12 Before the Jury Enters Judge: I have something I want to say first. I made a mistake, and I want to correct it. Near the end yesterday we got into a discussion about the ownership of the individual API packages. Mr. Jacobs said that Purcells admitted that they were not going to contest ownership. And I said I wasn't going to hold Mr. Purcells to that. I'm going to retract that. I put that back as an open question. I had in mind a different colloquy. I'm not saying I *am* going to hold them to it, but I'm going to hold that open. Mr. Jacobs: Further to ownership and registration and other formalities. Let me try to narrow scope of issues in dispute. We no longer seek a package-by-package ruling on infringement as it relates to the code. (Relates to question 2 on verdict form.) On the document part, we urge that to be treated similar to the code packages. We seek a ruling on documentation copying. If that ruling comes in the contexgt of 37 packages, that would suffice. We don't need package by package rulings on the documentation. But we do need a ruling on the documentation. Judge: How would you phrase the question to the jury? Oracle: To the jury: the question would be of the form. "Did Google infringe by copying the API documentation into its documentation?" Judge: Compared to what? What's the work as a whole? Oracle: We would have it be co-extensive with the determination for the code packages. Judge: OK, that's much simpler. But I'm not making any ruling. Oracle: We withdraw the characterization of the registration as a collective work. We never relied on that, we don't need that. Oracle: Next point is to offer into evidence some exhibits. Van Nest: Before we begin, if I may. I didn't know until he stood up that he was going to withdraw the collective characterization. [Requesting time to confer, to talk about exhibits that O is trying to submit.] Judge: OK, 10 minute break. 7:37am. [Back from the break] Judge/Lawyers Discussion Resumes Google: We're in agreement with Mr. Jacobs, for question 2a, that work as a whole should be the same for both code and documentation. Oracle: Exhibits agreed to: 465, 466, 467, 468, 469, 470, 471, 472, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488. As part of reopening our case in chief. Basis is that these go to ownership as part of the JCP process. Oracle: Offer into evidence 1078. Letter to copyright office with a received stamp on it for java 2 SE5. Judge: Objection is what? Google: Hearsay, lack of foundation, and incomplete. Where is this disk? [they have it] And it needs to be authenticated. Google: These are business records of the law firm. Oracle: Because of conflict, the records were transferred to Oracle. Judge: (To Google) Do you really want the jury to think that the case turns on this? Google: No. Judge: Then why are you making a big case about this? Google: We just want someone to testify that the disk has the same contents that was submitted. [Talking about attorney who recorded these details at Fenwick, then turned it over to Oracle.] Judge: I think it's better to bring in Mr. Gonsalves. Oracle: I would offer 1078 as a self-authenticating document that has on its face indication of authenticity. Google: They are clearly offering this for the truth of its contents, to show that a disk was submitted. Judge: Was there a disk, and what was on it? And that's not something I can take as self-authenticating from the face of the letter. I'm not going to rule on this - but tentatively I'm going to rule no - you have to bring this in the right way, with a witness. They (Google) have the right to be mean and nasty - which is what I think they're doing here. I would need some case law to overrule their objection. [PJ: Don't rule out that Google knows something more about this than we, or the judge, yet do. Why is Oracle reluctant to bring in a witness to authenticate? That is the question. And while the judge said "mean and nasty" -- he also eventually says they're legally right -- and consider what I told you yesterday, that I thought this move was Google sending a message to Oracle, that it's tired of Oracle's trickiness and surprises, bringing in new theories and exhibits and witnesses at the 11th hour. Lawyers sometimes do that to throw the other side off, and it can. The judge might allow them, and maybe he doesn't yet even notice that it's happening, but Google, I think, is drawing a line in the sand and it would like them to cut it out. Normally, lawyers are gentlemanly, courtly you might even say, and there is rarely a situation where a lawyer will refuse a request for a favor. But there is a saying I've heard lawyers say to each other, and you may have heard it too in everyday speech, "If it's love, it's love. But if it's war, it's war." And when lawyers decide you are declaring war, they don't mind returning bullets, speaking metaphorically. Oracle now has a decision. It looks like they are backing down, but that doesn't mean they won't try again another day. But I suspect we have seen the end of courtliness. If it returns, it will have to be on both sides. It can't be one side love and the other side war. What the judge said, he said out of earshot of the jury, so Google doesn't have to care if the judge thinks they are being mean, so long as they prevail in sending the message. Oracle has to worry that their techniques have lost them any wiggle room with Google from this day forward. And they've learned that magic tricks in the courtroom only work if no one in the room knows the trick, and now they know that Mr. Van Nest is a magician too. What I'm explaining is that what I think I see is a discussion going on on more than one level, and the words match the one that isn't the core, so to speak.] Oracle: MRT Construction vs. Hard Drives, Inc. Business records case. Exactly like this case. A file from an outside law firm transferred to Oracle. Judge: You're not explaining why you can't get Mr. Gonsalves here. You're avoiding that. I'm not going down this path until you tell me he's unavailable, as in he refused a subpoena. Oracle: Offer 1076, the CD rom. Judge: Same ruling (i.e. no, need a witness) Judge: Those 4 docs are in limbo. I'm not ruling, but I question the foundation. I'm not ruling it out, but I'm not ruling it in based on a proffer. 8:07am Jury comes in. Bruce Baber of King & Spalding is up for Google. Professor Owen Astrachan returns to the stand Google: Does the specification say what code to write? Owen Astrachan: No, it does not. The implementation of the method is what the programmer implementing the API needs to think about and understand. Google: For someone who is trying to implement that method, to write new code, does the spec tell the programmer what to write? Owen Astrachan: No. Google: Does it tell the programmer what the code has to do? Owen Astrachan: Yes. Google: Does it tell them what code to write? Owen Astrachan: No. Google: Once the method has been implemented, does the spec tell a programmer writing an app what to write? Owen Astrachan: Yes, it tells them how to call the API. Google: And do they have to write that code exactly? Objection - Leading. Judge: Sustained. Try not to lead your own witness. [judge lecture on when it's leading, and when it's not.] Google: For a programmer trying to use a method that's been implemented, does the method specification say what the programmer has to write? Owen Astrachan: Yes. Google: Can you have more than one implementation of a spec? Owen Astrachan: Yes. We've seen two implementations of the math.max class. We saw Dr. Bloch implement math.max. The implementation is between the curly braces. Google: Did we see a second implementation? Owen Astrachan: Yes. I don't remember who did it though. But I recognize 3525. Implementation is between curly braces. Google: Exhibit 62301. Owen Astrachan: Implementation of java.math.max from java package. Google: Where is the implementation? Owen Astrachan: Found it. Page 15 / 24 . (Reads implementation.) Google: Is it different? Owen Astrachan: It's different from both of those other ones. Google: Now the Android implementation of java.math.max Owen Astrachan: [Reads Android implementation.] Google: Four different implementation for the same max method? Owen Astrachan: Yes. Google: Do all four different sets of code perform to the spec? Owen Astrachan: Yes. Each would provide the same output given the same input. Google: In order to create a new implementation, what do they need? Owen Astrachan: They need the spec. They need the ability to do it. Google: Can you create the implementation without the spec? Owen Astrachan: No, you need the spec. Google: Does requiring the implementation depend on whether you're doing a cleanroom implementation or not? Owen Astrachan: No. Judge: Question about specification. Your description made it sound like a black box with something inside. You have input on that side and output on that side, and the spec says what the inputs gotta be, and the outputs gotta be, and the implementation is what's in the black box. Owen Astrachan: That is a very good explanation. I like that explanation. [Judge smiles] Google: [Google asks professor to write some code using API. I wonder if this is a job interview?] [PJ: Actually, we at Groklaw were wishing Google would do this, so the judge and jury could see the simplicity.] Google: Is there a simple program you can write? Owen Astrachan: [Plans to show how to use the java api to go over the Internet, grab a web page, and then print it on the screen.] Google: How many steps? Owen Astrachan: Those 3 steps specify where to go, make a connection, read and display. Owen Astrachan: Package, class, and method. Writing a program, I have to write a class. (This will be Simple.WebReader.) This will not become part of the API. This code is *using* the API. I'm careful, so I'll include a stylized comment that shows that I'm the author. [Some explanation about CS / java. How Main is required. URL. Network stuff is in java.net.] Owen Astrachan: 3 steps are needed. Note that this program just prints the first character from that site, for simplicity. [The code he writes is something like [I can't see it, so I'm inferring stuff. Don't know all capitalization.]: package Simple; // @author: aulut [or whatever his username is] public class WebReader { public static void Main(string [] arg) { java.net.URL site = new java.net.URL("http://cnn.com/"); java.io.inputstream source = site.OpenStream(); system.out.print(source.read()); } } [End reporter explanation.] Google: You testified that the programmer has to use the API exactly. Owen Astrachan: Yes. Google: Did you include any method signatures? Owen Astrachan: Yes, I used 4 method signatures. [Marks in red the constructor for the URL class. Also the OpenStream() method. The read() method. And the print() method.] Owen Astrachan: All of them are in the API packages. Google: Are they in the same or different packages? Owen Astrachan: Different. java.io.inputstream is the inputstream class of the java.iopackage. Google: How many packages? Owen Astrachan: java.lang, java.net, java.io - so 3 packages. Google: Are these real signatures? Owen Astrachan: Yes. Google: Have you memorized them? Owen Astrachan: I know the ones I use often, they are in my head. Google: Did you just copy them from the spec? Owen Astrachan: No, I used them. Google: Would this program run? Owen Astrachan: Yes, it would show the first character from cnn.com. Owen Astrachan: To show pictures, I would need to call a library that displays pictures. For that, I'd need a different library. Google: Would this run on Android? Owen Astrachan: Yes. Google: PC with Java? Owen Astrachan: Yes. Google: Do you think Android and Java are compatible with regard to these 3 methods? Owen Astrachan: Yes. Google: Do you think Android and Java are compatible with regard to the 37 accused packages? Owen Astrachan: Yes. Google: you used 3 or 4 methods. How many lines of of code writing did you avoid by using the library? Owen Astrachan: I've saved a thousand lines of code. Judge: I have some questions. Terminology point. Those things in red - what are they again? Owen Astrachan: These are the methods that I'm using. Judge: But then you used the word signature. Owen Astrachan: In order to call the method, I send it something, the black box happens, and I get the results. For this method, I need to know that I give it a string, and I get back a URL. Signature says what to give in, and what comes back. Judge: OK, take print. What part is the signature. Owen Astrachan: The name of the method, and the parameters that I pass to it. Judge: Give us an example of a signature where you sent an input, and you got an output. Owen Astrachan: [Tries to explain] Judge: So the output is URL. Owen Astrachan: Correct, a URL object. Judge: So is the signature the name of the method in combination with the input and output? Owen Astrachan: Yes, fully qualified name, java.net.URL. Judge: Thank you, one other question. I thought packages were preexisting things. But you just made "Simple". Owen Astrachan: I think you do understand. Prewritten code is in packages that I get, that I can use. The code I get is in a package. And code I write must be in a package too. Judge: That thing about public class public static Owen Astrachan: Part of the signature. [Prof is lecturing CS 101.] Judge: Does public mean you're donating it to Java? Owen Astrachan: No. Judge: Then whey don't you make it private? Owen Astrachan: I have to make Main public. It has special meanings. Judge: Can you circle the names? Owen Astrachan: [Circles Simple and WebReader and Main.] [Lecture over. Proffessor Astrachan sits down.] Google: Have you conducted any analysis of the number of lines in Android / Java? [exh 3536 - his summary] Owen Astrachan: Android platform has 15M lines of code. (4.7M in Java) 57,000 files in Android platform. (15,000 files in Java). Google: How many Java packages are in Android? Owen Astrachan: 51 - though yes, only 37 are accused. Files in all API packages - 6,000. Google: Have you compared Android and Java? Are they substantially similar? Objection - overruled. Owen Astrachan: No, not similar. Owen Astrachan: Platforms are designed for different things. Mobile (Android), vs. desktop (Java SE). Google: What part of the android platform are the 37 packages? Owen Astrachan: A very small part. Google: Are there any similarities or differences between the source code in Java / Android. Owen Astrachan: Implementation of Android is very different. Google: (Another question - missed) Owen Astrachan: Implementation code in Android is completely different. Google: Why do the 37 packages have the same structure? Owen Astrachan: Those same names are needed so the code interoperates. Google: 3rd line of that chart. Owen Astrachan: Those APIs are not similar at all. Completely different. Google: Nothing at all that's the same between the implementing code? Owen Astrachan: The code is completely different. Google: Structure similarity? Owen Astrachan: Class / packages of the 37 are the same. Google: Why? Owen Astrachan: They need to be the same. Owen Astrachan: 2.8M lines of code in API of Java. 237,000 lines of code in Android. Implementation of the 37 accused APIs. Completely different. Other than the method signatures. Google: Anything else that's the same? Owen Astrachan: No, nothing else the same. Google: Structure and organization of the 37? Owen Astrachan: Yes, that's the same. Google: Have you ever heard reference to SSO? Owen Astrachan: Yes. Google: Selection, structure and organization? Owen Astrachan: Yes, they're all familiar. [8:55am - Jury looks pretty attentive. I'm a little bored however... :-) ] Google: When someone is designing an API (not the implementation), what do they do to create the API? Owen Astrachan: To create the API, I make the package, class, and method names. Google: And what do you do? Owen Astrachan: I write code and implement the methods. Google: To what extent if at all are the ideas reflected in the implementation? Owen Astrachan: Implementation is much harder. Google: How many lines of code would it take to minimally /trivially replicate / implement the 37 APIs? Owen Astrachan: 7,000. Google: Out of 237,000? Google: What percent? [Some math mistake in discussion.] Owen Astrachan: A very small percentage. Judge: (Corrects the math) I'm 66 years old, but I can still do the math. [ No one can figure out what 7 / 237 is in percent.] [PJ: Here's a tip for lawyers. If it's a technical case, have someone like Dan Bornstein sitting at your table the entire time. Serious suggestion. Software is algorithms, which is mathematics. At some point, math is going to come up.] Google: 7,000 out of 15 million. Owen Astrachan: Very small percent. [Google arguing that sql packages are "needed". Their expert witness agrees, shocking :-) ] Google: What about 10 packages with security in their name? Owen Astrachan: Secure connections on the internet. I rely on the security packages. I wouldn't know how to write this code. Google: Are they necessary? Owen Astrachan: In today's world, yes. Google: 3 crypto packages. Owen Astrachan: Yes, they're required too. Google: java.text Owen Astrachan: This lets me do internationalization. Google: java.awt.font Owen Astrachan: Allows things to be on the screen. Yes, for practical use, it's necessary. Google: The last package is java.beans. Owen Astrachan: Allows my classes to work together with each other. And yes, for practical use, it's necessary. Judge: You've said that they're necessary. But you've said the Android implementation is different than the java implementation. Is that correct? Owen Astrachan: Yes. Judge: So what part is necessary? Owen Astrachan: The functionality provided by those packages. [PJ: Is the judge beginning to realize how stupid this API claim really is to technically aware people? The questions make me hope that the tech is now getting clearer.] Google: Is it required to meet expectations of Java programmers? Owen Astrachan: Yes. Google: Required by industry? Objection - overruled, after grilling the witness about what he knows about the industry. Owen Astrachan: Yes, I think they are. Google: How similar is documentation? Owen Astrachan: Not very similar. Google: Is documentation virtually identical? Owen Astrachan: No. Google: Is an API like a file cabinet? Owen Astrachan: Yes. Google: Perfect [analogy]? Owen Astrachan: No, but good. [Google is done questioning Professor Astrachan. 15-minute break announced] Judge: I did the math, 2.9% [Jury is now out] It's now 9:15am. 9:30am [Jury back] Cross Examination of Professor Owen Astrachan, by Oracle's Michael Jacobs Oracle: Isn't it true that the Java programming language and the Java API are different? Owen Astrachan: Yes. Oracle: Java refers to 3 very different things: language, API, and source code? Owen Astrachan: Yes. Oracle: Is it difficult to write good APIs? Owen Astrachan: Yes. Oracle: Is it artistic, like being a football player, concert violinist, etc.? Owen Astrachan: I don't know what it's like to be those things. Oracle: [Plays a video clip, where he says something about football player and concert violinist.] Oracle: Small number are necessary? Owen Astrachan: Yes, 61, at a minimum. Oracle: Minimum? Owen Astrachan: I agree with 61. Oracle: The program he wrote wouldn't *run* on Android? Oracle: (The byte code is different). Owen Astrachan: I thought you were asking about the code I wrote which is source code. Oracle: But source code won't *run* Owen Astrachan: Correct. You need to compile it to run on a platform. Oracle: The format of the code on Android is different? Owen Astrachan: Can I understand the question to mean the byte code is different? Yes. Oracle: You were talking about 7,000 lines of code is a small piece of Android? And these are symbol for symbol identical. Owen Astrachan: Yes. Oracle: What would happen if you took out those lines? Owen Astrachan: They need to be there for Android. Oracle: The court asked couldn't Android developers have written their own interfaces for the overwhelming majority? Owen Astrachan: Is it possible to write a different API? Yes. Oracle: Couldn't you write a different API to provide the same functionality? Owen Astrachan: Yes, similar, but not identical. Oracle: Android could have written their own SQL API? Owen Astrachan: Yes, they're pretty smart. Oracle: They wrote most of their core libraries? Owen Astrachan: Yes. Oracle: [missed Q] Owen Astrachan: No, the underlying code does not reflect the SSO. Oracle: But the same functional code lies in the same position in the same sub-sub-package. Owen Astrachan: Each package has different implementing code. They don't have to be in the same location. They just have to have the same name. Oracle: The code has to provide the functionality in the spec? Owen Astrachan: Yes. Oracle: java.lang.math.max doesn't mean call your mother. Owen Astrachan: That's correct. Owen Astrachan: You expect different implementations to have the same functionality. Oracle: java.nio came into existence in 2002. Owen Astrachan: Yes, I guess. Oracle: You argued that the Android docs is not similar to the java docs? Owen Astrachan: It's similar in that it describes the same thing, but it's different in that the words are different. Oracle: 610.2, 767, side by side. javax.crypto.cypher Owen Astrachan: It's describing the same class in the same picture. Owen Astrachan: I don't know about position in the hierarchy. They have the same package and class name. Yes, it's hierarchical. Oracle: If we were to compare the documentation, package, class and other things would correspond? Owen Astrachan: Yes, it has to. Oracle: It has to if you decide you're deciding to copy. Owen Astrachan: I don't think it was copied. I think they used ... Oracle: How can that be done? "Derive"? Owen Astrachan: I didn't use the word derive. No, documentation is not based on the source code. It's in the source code, and it's extracted to create a human readable form. Oracle: Was the choice to pick 37 packages to implement Android, a requirement, or a commercial goal? Owen Astrachan: It's not a requirement, not sure about commercial goal. Oracle done questioning Professor Astrachan. ReDirect of Professor Astrachan, by Google Google: Put those exhibits back on the screen. Mr. Jacobs just asked you about stuff at the top. To the extent they are the same, do you attribute that to anything? Owen Astrachan: They have to. Google: Would you expect this for anyone implementing this spec? Owen Astrachan: Yes, I'd expect them [to be] the same. Google: "Would it run, compile on other platforms." Would you have written it differently for Android? Owen Astrachan: I'd change the entry point, from Main(), to something else. ReCross of Professor Astrachan, by Jacobs Oracle: "names cypher" Owen Astrachan: The specific name isn't required by the language. Oracle: Even if the language doesn't require the use of the name? Owen Astrachan: Android requires it for interoperability for people familiar with Java. [Astrachan may step down now.] [Google rests. And now Oracle begins its rebuttal.] Oracle Rebuttal Mr. Jacobs: [Begin with deposition clip of Aditya Agarwal.] Judge: Please explain who this guy is? Oracle: 30b6 subject, Android revenues. [clip plays] Agarwal: Sr. financial analyst for Android. Oracle: Would you agree with the statement that Android is hugely profitable? Agarwal: Yes. [end of clip] [Oracle calls Dr. Reinhold.] Rebuttal testimony of Dr. Mark Reinhold Oracle: How long did it take to design the java.nio JSR API. Mark Reinhold: About 2 years. Oracle: How long would it take to design a max API? Mark Reinhold: About 30 seconds. Oracle: Does that accurately describe how much work goes into it? Mark Reinhold: Oh, no. Oracle: You said "APIs are blueprints." People disagreed. Mark Reinhold: They *are* blueprints. The whole point is that different people can develop competing implementations. Oracle: How do they use an API as a blueprint? Mark Reinhold: If you have a good API, once you've got that, to do an implementation from scratch is a relatively easier job. You start by copying the API, and then you implement it. [PJ: My friends, I ask you. Does that sound like a blueprint to you?] Oracle: Is implementing an existing an API less or more work than designing the API? Mark Reinhold: Less. There's room for creativity, but only within the API. Oracle: When did JCP start? Mark Reinhold: 1998. Oracle: Usually an expert group for a JSR? What did they sign? Mark Reinhold: JSPA. Oracle: How strict was Sun about requiring them to get strict? Mark Reinhold: Extremely strict. Oracle: Did you review the 37 APIs to see if they were written by 3rd parties? Mark Reinhold: Yes. Oracle: Why? Mark Reinhold: When open sourcing java, we had to review every file to make sure that we could release. Mark Reinhold: I found that Sun had a copyright in each of the 37 API source files. Oracle: Was any part jointly copyrighted? Mark Reinhold: Yes, in java.text, and in java.util, jointly copyrighted with Taligent and IBM. Oracle: Was there an agreement in place between Sun and Taligent? Mark Reinhold: Yes. Oracle: Exhibit 1082. Source code agreement. Exhibit 3530, 6th page. [Copyright for Java docs I think.] [Essentially, Oracle is getting in to the record documentation that they have the rights to everything Java.] Google cross-examination of Dr. Reinhold Google: The disk that Mr. Jacobs asked you about, when were they created? Dr. Reinhold: October 2004. Google: 20 different releases? Dr. Reinhold: Yes, maintenance releases. Google: When were the maintenance releases? Dr. Reinhold: Don't remember, generally every few months. Google: 5.0.1, 5.0.2, etc. Any distinguishing features? Dr. Reinhold: Yes. Google: If you look at the exhibit 3529, when it was signed, 12/17/2004. Can you testify that there was no maintenance release between then and the original release? Dr. Reinhold: No. Google: We object, he can't testify which disk that is. Judge: We accept it into evidence, but don't know which it is. Redirect examination of Dr. Reinhold, by Oracle Oracle: Of the 37 packages, how much of the work did Sun do? Dr. Reinhold: Sun did most of it. Oracle: How many were released before the JCP was formed? Dr. Reinhold: Probably 7 or 8. Oracle: Who was the spec lead? Dr. Reinhold: I was. ReCross of Dr. Reinhold by Google Google: Blueprint analogy. But the API spec doesn't tell you how to write the code? Dr. Reinhold: Of course not. Google: It just tells you what the code has to do? Dr. Reinhold: Yes. Google: You can write that code any way you want? Dr. Reinhold: Yes. [Google gets him to say that a stub implementation has about 10,000 lines, out of about 5M lines of code.] Dr. Reinhold: Yes, 10,000 very expensive lines of code. Google: In addition to the 37 accused packages there are 14 other packages that are in Android too. Google: java.util.concurrent written by Doug Lea? Dr. Reinhold: Yes. Google: Donated it to the public? Dr. Reinhold: Yes. Google: When you looked at the source code to see if anyone else owned it. You mentioned some. But there are some others too though? Dr. Reinhold: Not sure. Google: What about java.awt.font? Dr. Reinhold: Yes sir, but my understanding is that's not in Android. Google: java.net owned by nobody? Dr. Reinhold: I don't recall that. Google: java.net.inet4address.java. Familiar? Dr. Reinhold: Yes. Google: Represents an IP address. Judge: Is that one of the 37? Dr. Reinhold: Yes. Google: Also, inetaddress.java. Dr. Reinhold: Yes, represents an IP address. Google: Is any content in that class created by Sun? Dr. Reinhold: As far as I know, all of it. Google: It's your testimony that the class is owned by Sun? Dr. Reinhold: It's my testimony that that code did not contain any legal notices asserting any legal ownership by anyone other than Sun. Google: XML. 10 classes? Dr. Reinhold: Sounds good. Google: Sun released under the Apache license javax.xml and all subclasses? Dr. Reinhold: I don't know. I know a lot of the code came from Apache. I honestly don't recall. Google: You're saying the code came from Apache? Dr. Reinhold: Not saying one way or another. Google: But it's released under an Apache license? Dr. Reinhold: No, I don't recall. Google: You testified that you did an extensive review before releasing them? Dr. Reinhold: Yes. Google: But you don't recall that java.xml was released under Apache? Dr. Reinhold: No. Judge: You said you reviewed the 37 along with others. Did you review them to see if there was an affirmative statement of ownership by Sun, or did you review them to see if there an absence by others? Dr. Reinhold: Looked for affirmative. [clarifies] Some might not have notifications. For which I assumed some Sun engineer was sloppy and forgot to put it. [PJ: Wow. I wonder if this means Oracle can't prove it actually owns the 37? That's one of the requirements to prevail on a copyright infringement claim. As we now see, this isn't just some "technicality".] Re-re-Direct of Dr. Reinhold, by Oracle Oracle: Exhibits 1083, 1084, 1085, 1086, 1087, 1088. Dr. Reinhold: These docs are samples of executed versions of the JSPA. [Google makes him check them all.] Oracle: Has anyone asserted that Sun doesn't own all rights to Java? Dr. Reinhold: No. Oracle: Were Mr. Baber's questions about packages inside or outside the 37? Dr. Reinhold: Some are in, some are out. Re-re-Cross of Dr. Reinhold, by Google Google: Well, they're all in the 166 of Java? Dr. Reinhold: Yes. [Reinhold is excused.] Oracle calls Tiki Dare. [PJ: Marilyn Tiki Dare is an Oracle attorney. Here's her picture.] Rebuttal Testimony of Tiki Dare Oracle: Ex 1078. Objection - Sustained for now. Tiki Dare: I work at Oracle, Redwood shores. Managing counsel for trademarks and copyrights. I'm the custodian for copyright docs. Oracle: How familiar with the Java 5.0 specs? Tiki Dare: Very familiar. Tiki Dare: Those files were maintained by Fenwick, but Fenwick had to withdraw, so August of 2010 we became custodian of those records. Oracle: 1078 and 1081. Tiki Dare: 1078 is a letter from Fenwick to Register of Copyrights to request copyright [registration] for Java 5.0. Oracle: What's 1081? Tiki Dare: A cover letter from Fenwick to Register of Copyrights for Java 1.4. Oracle: Are there stamps? Owen Astrachan: Yes, stamped received by Copyright Office. Oracle: Offered into evidence. Cross Examination of Tiki Dare, by Google Google: Exhibit 1078, 12/20/2004. Google: There's some reference in this doc to a CDROM. Can you testify that a CDROM was sent to the CR office from your first hand knowledge? Tiki Dare: I don't have first-hand knowledge. Google: Can you testify what the disk has? Tiki Dare: No. Oracle Redirect of Tiki Dare Oracle: Have you examined the file? Look at 1076. Tiki Dare: CDROM for Java 5.0. Oracle: What did you do to confirm that 1076 was actually in the file? Tiki Dare: I examined the file, it looks like a Fenwick file. It's in the place where we expect it to be. The number of bytes was the same. Oracle: 1077. Tiki Dare: first page is cover and packaging of Java CD, label, and back of packaging. Oracle: Offer into evidence 1078, and 1081, and 1077. ReCross of Tiki Dare, by Google Google: Is there anything about the letter 1078 that indicates that the disk that was marked 1076 was submitted? Tiki Dare: The opening paragraph reads that this refers to Java 5.0. Google: Can you testify under oath that the disk marked as 1076 is in fact a copy of the disk that was in fact sent to the Copyright Office on 12/2004? Tiki Dare: I can tell you... Google: Just answer yes or no. Tiki Dare: Not with personal knowledge. Google: Same objection. Re-re-Direct of Tiki Dare by Oracle Oracle: Can you describe your familiarity with Fenwick & West's systems? Tiki Dare: Lots and lots. I have high confidence that this is the right disk. Oracle: Renew our offer into evidence. Judge: Objection overruled 1078 etc. in evidence. But I do have this caveat for the jury. You'll hear more in the closing arguments. There might be a dispute over what was registered and was not registered. The letter with the ribbon said it was submitting *something*. There was another letter from the Copyright Office saying it wasn't submitted. There is a possible question there - was it submitted to the Copyright Office, or was it not submitted? 10:45 - Jury out. Talking about Mr. Gupta getting excluded, lacking foundation. Oracle: Sun employee. Competent. Judge: Positions don't mean a thing. Both sides have gotten away with murder. Why don't you just rely on the real documents, real license agreements? As opposed to someone coming in saying "oh, it was always our practice". At some point, that's gotta come to the end. That's the 403 point. Oracle: But Mr. Schwartz's testimony yesterday. But Mr. Gupta that was in charge of licensing testifies the opposite. Judge: But Mr. McNealy gave testimony yesterday. Just platitudes. Give me 4 lines that are short and sweet and maybe I'll reconsider. Oracle: The license was required to use the TCK even. Judge: OK, I'll allow that. Oracle: Can I read the foundational aspect? Judge: OK, I'll allow that. Judge: Is that your last thing? Oracle: No, then Ms. Katz. Judge: How much time left? [Judge calculating.] 982 minutes. You have 38 minutes left. [Google has used 995 minutes. For the first time, they've used more.] 11:10am [judge / jury back] Oracle calls back its expert Dr. John Mitchell. Rebuttal Testimony of Dr. John Mitchell Oracle: You were here during Dr. Astrachan's testimony. Dr. John Mitchell: Yes. Oracle: "Completely different." Dr. John Mitchell: Yes, I heard that. Oracle: Your opinion on that. Dr. John Mitchell: The code may be written differently, it's written to the same specification. Therefore it has the same functionality. Oracle: SSO. Dr. John Mitchell: Code is organized according to the API. All is dictated by the API. Oracle: Let's look at a slide. 19. 610.2. Dr. John Mitchell: This shows on the left the web display of java.nio. And Android on the right. Oracle: This is just 1 page out of how many? Dr. John Mitchell: Thousands of pages if you were to print the API. 37 packages at issue, 400 classes, 5,000 or more methods. Not even the tip of the iceberg. It's the snow on top. Oracle: That snow is? Dr. John Mitchell: In terms of the number of declarations. Oracle: Stub implementation. Accurate description of similarities? Dr. John Mitchell: Not really sure what a stub has to do with it. Methods without further implementing codes. Oracle: What we're looking at here? Dr. John Mitchell: These are the declarations in the source code file that are followed by additional executable code. Dr. John Mitchell: This demonstrates the package hierarchy, the membership of classes in packages. Oracle: Now slide 20. Dr. John Mitchell: [some implementation code] Oracle: What does this say about the level of copying? Dr. John Mitchell: The declarations are literally copied into the code. Oracle: Filing cabinet analogy. What do you think of that? Dr. John Mitchell: File cabinet reminds me of a file system. I don't think it captures the depth and complexity of an API. Classes implement interfaces. Oracle: (Puts up demonstrative titled "Google's Filing cabinet analogy disregards hierarchy relationships") Oracle: What is this? Dr. John Mitchell: java.nio I believe, buffer kind of classes. Oracle: What would it take to make the filing cabinet analogy align with the hierarchies? Dr. John Mitchell: One option is to toss it, which makes the most sense to me. Use the right terms, like package, class, method. Oracle: Is the Android class libraries with Java class libraries? Dr. John Mitchell: I think the point illustrated by this code is that for a given a piece of code, it may run on both platforms if the only thing it requires are things that are on both. Oracle: But what about "run"? Dr. John Mitchell: Well, to get things started, you need slightly different. Oracle: Byte code. Dr. John Mitchell: The process of producing byte code is different? Oracle: Will compiled code work on both? Dr. John Mitchell: No. Oracle: So in sum, what would you say about the compatability? Dr. John Mitchell: They overlap in concept, beyond the 37, they are different and incompatible. Oracle: Could the Android developers have created their own APIs for all but the 61 classes and still use Java? Dr. John Mitchell: Sure. Judge: How many classes, 61? Dr. John Mitchell: Yes. Judge: Of the 37, how many packages does the 61 classes fall into? Dr. John Mitchell: Maybe 3? java.lang, java.io. Google cross-examines Mitchell Google: They could have just written their own APIs? Dr. John Mitchell: There are certainly reasons for reusing. Google: What reasons would you have for reusing? Dr. John Mitchell: They're well known, they're the result of a considerable amount of effort. They've stood the test of time. A large group of programmers have found them to be useful. Google: They're not just well known, a lot of Java programmers have these methods memorized? Dr. John Mitchell: Computer geeks have good memories. Google: Is Professor Astrarchan a geek? Dr. John Mitchell: Well, I mean it as a compliment. Google: How many did he use, and did he get them exactly correct? Dr. John Mitchell: Yes. Google: Programmers expect to have these functionalities available to them, correct? Dr. John Mitchell: On other platforms, who knows? Google: What about Java? Dr. John Mitchell: If you said "write something in Java", I think that might be the default assumption. Google: If instead of using the specs in the Java platform, instead you used your own APIs, would they be able to use the names they memorized that they had used for years? Dr. John Mitchell: True. Google: So if you wrote new APIs, then experienced programmers would have to use new names. Dr. John Mitchell: They would have to adapt. Google: You talked about Dr. Astrachan's program that he wrote, and the entry point. Dr. John Mitchell: Yes. Google: You agree? Dr. John Mitchell: Yes. Google: What would you do if you want to make it work on Android, other than change Main? Dr. John Mitchell: I think the code is fine, besides Main. Google: You'd expect it to work on both Android and Java? Dr. John Mitchell: Yes. Google: So for those 4 method signatures, the Java and Android are compatible. Dr. John Mitchell: Yes, that sounds like a great definition of compatible. Google: 623 back up on screen. No, wait, 610.2. I want the one Mr. Jacobs used with the witness. Google: Dr. Bloch's max function. Everything above here is the specification? Dr. John Mitchell: Yes. Google: What's missing is the human language specification of what it does? Dr. John Mitchell: Yes. Google: Everything above that has to be this way? Dr. John Mitchell: Yes. Google: So what we have on this chart are two things, what is being implemented, and its specification. Dr. John Mitchell: That's one way to look at it, yes. Google: But those elements in the exhibit you were talking to Mr. Jacobs about, those are specifications, not implementation? Dr. John Mitchell: Yes. Judge: [pins him down a bit] Google: The parts you talked about with Mr. Jacobs, those are not part of the implementing code, if you exclude the declaration? Dr. John Mitchell: Yes. Google: So Dr. Astrachan said that the implmenting code is completely different? Dr. John Mitchell: I disagree. Google: Why? Dr. John Mitchell: The declarations are part of it. Judge: Putting aside the declarations. Dr. John Mitchell: I agree they're different. Google: There are no lines of code that are the same, if you exclude the declaration and specification, there are *no* lines of code that are the same? Dr. John Mitchell: I didn't really go through line by line. Google: But earlier you identified 9 lines of range check code. Dr. John Mitchell: Yes. Google: You understand those are out of Android now. Dr. John Mitchell: That may be. Google: Assume that those 9 lines, and those test files are out. Then you couldn't identify a single line of code that would be copied? Dr. John Mitchell: I can't identify from recall. Google: Stub implementation are well known? Dr. John Mitchell: Stubs are well known. Google: Would the stub implementation include everything that you referred to as the SSO? Dr. John Mitchell: Yes. Google: The method signatures? Dr. John Mitchell: Yes. Google: And you heard his testimony about how much it would take to make a stub? Dr. John Mitchell: Yes, 7,000 is reasonable. Google: If it is 7,000, out of 298,000, that would be about 2.4%? Dr. John Mitchell: Sounds about right. Google: But out of all the lines, it would be about 0.25%? Dr. John Mitchell: I believe your calculator. Google: May be 10,000? Dr. John Mitchell: Yes. Google: Still same order of magnitude, 3% or 0.4% Dr. John Mitchell: OK. Google: For all 37 packages, the source code tells us which version of the Java it first appears in? Since 1.4, 1.2, etc.? Dr. John Mitchell: Yes. I don't know how accurate they are. Google: What else could "since 1.4" be? Dr. John Mitchell: That seems like the straightforward explanation. Google: arrays.java has been in Java for a long time (that rangecheck is in)? Dr. John Mitchell: Yes. Google: If the source file says it was in there for a long time. [incontrovertible] ReDirect of Dr. Mitchell by Oracle Oracle: What's the significance of the 7,000 lines of code? Dr. John Mitchell: Those 7,000 lines of code express that SSO. [Dr. Mitchell steps down] Oracle moving into evidence Google's 10-K. 3215. Google objects. Oracle presents an email saying Google agrees. "More individuals are using non-PCs to access our services." [Now Oracle reads the deposition testimony from Vineet Gupta, that they were discussing previously.] [Vineet worked at Sun. Licensing. Since before 2005. Responsible for Sun's overall licensing strategy. A licensee was required to pass the TCK even if they were to use the Java brand? Answer: Yes.] Now Oracle calls Ms. Safra Katz. Testimony of Safra Katz Safra Katz: Employed at Oracle since 1999. President and CFO and on the board of directors. Oracle: Familiar with Apache Harmony? Safra Katz: Yes. Oracle: To what extent did you support them? Safra Katz: We never provided any financial support or anything to them. Safra Katz: We never used anything from the Harmony project. We never considered using anything from Harmony. We had a license from Sun for our own implementation. [ Jumping down the page, you find the three sessions involving Apache Harmony: As you can see, not only were leaders of the project invited, they shared the stage with Simon Phipps, then a Sun employee, and Mark Reinhold, who testified for Oracle, shared the stage as well with Apache Harmony guys in the same presentation. So when she says "we", I think she means Oracle only. And since Oracle seems to be making a U-turn away from Sun policies, that's probably truthful, although I haven't researched it yet. But it's misleading.] Oracle: Oracle filed this litigation... Safra Katz: We never wanted to be in this litigatoin. We reached out to them on many occassions. I met with Alan Eustace. Oracle: When did these meetings take place? Safra Katz: We acquired Sun in January 2010. After that. I met with Alan Eustace; it was about June 2010. May maybe. Oracle: What is it that you were trying to accomplish? Safra Katz: We had 2 objectives. Bring Android into Java compatability. And 2, get Android licensed. Oracle: Focusing on the meeting, what did you express? Safra Katz: We laid... Objection. Overruled. Judge: [To the jury.] This case should not be decided based on whoever was holding out for more money. This has nothing to do with what you should decide. On every single issue, you have to decide under the law who was right and who was wrong. And it doesn't matter who was reasonable in negotations. Say there's an auto accident. Say one side wants a lot of money, and the other side doesn't. That's irrelevant. They just decide based on the facts of the accident. So I just wanted to let you know that this is irrelevant testimony. The only reason I'm letting this in is because the accusation that greed is a motive. But you the jury decide the case based on law, not on personality, celebrity witnesses, etc. So the one side of the negotation that we're about to hear about is irrelevant. Now I want to say to you lawyers. Yes, you're right, that suggestion [greed] has been made.] Oracle: To what extend did you express Oracle's position? Safra Katz: I told him that Android needed to be licensed because of our IP and they need to become compatible. Eustace asked "what IP"? We made a financial proposal. Oracle: Was it discussed if Google would remove Java? Safra Katz: He said they could take Java out of Android, and I said that's what they'd have to do. Oracle: 1074. Safra Katz: This is the email that Eustace sent me. Oracle: 7/28/2010. "I discussed your proposals with engineers, founders, etc., and they're not acceptable. We will not pay for code we are not using." Any other reasons? Safra Katz: No, these are the reasons he gave me. Oracle: To what extent did he ever say "Google doesn't need a license because Java is free to use"? Safra Katz: He never said that. Oracle: After the email, did you make any further efforts? Safra Katz: Say that again? Oracle: Any other efforts to resolve the dispute with Google? Safra Katz: I think there were a few more conversations. Oracle: Successful? Safra Katz: No, that's why we're here. Oracle: Did you talk to Jonathan Schwartz? Safra Katz: I had a few. Judge: 3 minutes to go. Oracle: 2362. Is this email you received from Mr. Schwartz? Safra Katz: Yes. Oracle: Before and after, did Mr. Schwartz ever suggest that Google's use of Java was OK? Objection - Sustained. Cross Examination of Safra Katz, by Google's Christa Anderson Google: Never employed by Sun, correct? Safra Katz: Correct. Google: No personal knowledge of what Sun represented to Google, correct? Safra Katz: Correct. Google: You are aware of the Java business at Oracle? Safra Katz: Yes. Google: You agree that the Java client business has been on the increase about 10% a year? Objection, scope - sustained. Google: Since Oracle acquired Sun, you are aware that Oracle has asserted rights against Google? Safra Katz: Yes. Google: Do you have any reason to dispute Mr. Schwartz? Isn't it true that you have no first-hand knowledge that Mr. Schwartz's policy was to treat Java APIs as freely available? Judge: Non-starter queestion. Google: You wanted to assert IP against Google? Google: And this is after Oracle thought about but did not pursue a Java phone? Safra Katz: Yeah, hard to compete with free. Google: And then you went to Google and started to demand licensing? Safra Katz: Correct. Google: Exhibit 1074 - that was the response from Google? Safra Katz: Yes, that's what he wrote in the email. Google: Your compensation is 10's of millions of dollars? Safra Katz: I'm the American dream. Google: The only [person] more shares than you is Mr. Ellison? Safra Katz: Correct. Well, among employees. [Oracle rests the rebuttal.] Judge: We've now reached the end of the road on evidence. Next is closing statements. That will take about 3 hours, counting both sides. And in addition, I have to tell you what the law is. Closings on Monday (probably). 12:15 - jury leaves. xlb tells me that he thinks he heard that the judge and the lawyers will be back at 2 PM. I'm trying to find out what that's about, but it's moot in that our reporter has to leave, and we didn't plan on an afternoon session. And ars technica has the full email to Safra Katz, emphasis mine: Near the end of those negotiations, Google engineer Alan Eustace wrote to Catz, rejecting her company's demands that Google pay up for Android. That e-mail, which was shown to the jury, reads as follows: Safra, I have discussed your proposals with Google engineers, lawywers, founders, and executives, and they are not acceptable. We will not pay for code that we are not using, or license IP that we strongly believe we are not violating, and that you refuse to enumerate. Google engineers spent considerable time and effort building from scratch open source alternatives to closed systems. This effort is one that we believe is important to Google and our partners. Google and Oracle have a great opportunity to work together to make Java the preferred choice for mobile, client, and server computing. Your customers are begging for mobile solutions, and your enterprise business will depend on delivering them. We want to be your partner, but this discussion seems to be going in the wrong direction. Alan The Court will try to provide the jury instructions to counsel on Sunday night (April 29) by ECF and in that regard, request counsel to meet-and-confer about a way to delete all references to indirect infringement. Please let the Court know about indirect infringement by NOON ON SATURDAY, APRIL 28." Here's the docket entry and the PDF: 04/27/2012 - 998 - NOTICE [re jury instructions and "indirect infringement]. Signed by Judge William Alsup on 4/27/2012. (whasec, COURT STAFF) (Filed on 4/27/2012) (Entered: 04/27/2012) I gather Oracle is no longer making any claim for indirect infringement, but we'll have to wait until we see the final jury instructions to be sure. I don't recall any evidence at trial about indirect infringement, now that I think of it. If you recall, however, Oracle's complaint, the first one, mentioned indirect infringement in paragraph 46: 46. As a direct and proximate result of Google's direct and indirect willful copyright infringement, Oracle America has suffered, and will continue to suffer, monetary loss to its business, reputation, and goodwill. Oracle America is entitled to recover from Google, in amounts to be determined at trial, the damages sustained and will sustain, and any gains, profits, and advantages obtained by Google as a result of Google's acts of infringement and Google's use and publication of the copied materials. Evidently not so much after all. Oracle's Amended Complaint mentioned indirect infringement also. But if Oracle were concerned about its reputation and goodwill, it wouldn't pursue the offensive API claims, I don't think. Because the whole world is watching. And I have yet to find, amid the numerous article blasting Oracle for doing this, even one that says it's perfectly fine or justifiable. Well, OK. But he's paid by Oracle. That truly doesn't count. Maybe negatively, speaking of reputation. 0465.pdf [Labor Services Agreement between Sun and CNS Publishing, Inc. "(Supplier)"; dated 2000-07-20.]

0466.pdf [Labor Services Agreement between Sun and Mary Dageforde DBA Dageforde Consulting; dated 2000-12-22.]

0467.pdf [PrO Unlimited Exempt Employee Services Agreement (Programmers - Computer Professionals); Client = Sun Microsystems; dated 2005-06-02 ]

0468.pdf [Labor Services Agreement between Sun and Chet S. Haase; dated 2000-06-14]

0469.pdf [PrO Unlimited Employee Services Agreement (Programmers - Computer Professionals) for Scott A. Hommel; dated 2000-08-14]

0470.pdf [Acceptance Certificate ("services were rendered pursuant to agreement") between Sun and Elbrus MCST - J2ME Wireless Toolkit; Sun Cluster Automated Test Suite Development; Solaris Sustaining; Solaris Networking Test Development; SPARC Compiler Backend; mediaLib; Java Telematics Technology 1.0; Consumer and Mobile Systems Group (CMSG) Software Quality Engineering; Solaris Kernel and Data Services; Java2D; AWT and Swing; Java Studio Enterprise (Previously Sun One Studio Zebra/Stripes); Carlisle (Sun Java System Content Delivery Server); HPT QA; Project Rave, Hammerhead (Previously Sun ONE Studio, WebApps module); CLDL HI Development; Projects FOX, CPU2004 Analysis, GCC2IR, and Bytecode Optimizer (BCO); TCK Tools; JCCE (J2SE TCK work); C and C++ Compiler Front End Work; Developer Platform Group (DPG) Sustaining; Consumer and Mobile Systems Group J2ME TCKs; Jini Software Quality Assurance and Software Quality Engineering. Dated 2004-07-01.]

0471.pdf [Acceptance Certificate between Sun and Moscow Center of SPARC Technology - Forte for Java; Sun ONE Studio etc. Dated 2002-08-31.]

0472.pdf [Master Services Agreement between Sun and supplier Select Appointments (Holding), PLC dba New Boston Systems, Accountant's Inc., AccountPros]

0477.pdf [Master Services Ageement between Sun and PrO, Unlimited, Inc. Dated 1999-12-22.]

0478.pdf [Worker Confidentiality and Assignment Agreement (Sun) - Scott Hommel - Dated 2000-08-01]

0479.pdf [Worker Confidentiality and Assignment Agreement (Sun) - Maydene Fisher (PrO Unlimited) - Dated 2002-11-25]

0480.pdf [PrO Unlimited Non-Exempt Employee Services Agreement - Eric Armstrong - Dated 1997-06-09]

0481.pdf [Employment Agreement (The Carl Group) - Jamie Ho - dated 2002-01-24]

0482.pdf [Master Services Agreement between Sun and Carl Group, Inc. (The) - dated 1998-10-01]

0483.pdf [Master Services Agreement between Sun and Venturi Partners ("now Comsys") - part 2/2 - dated 2002-08-01]

0484.pdf [Master Services Agreement between Sun and Venturi Partners ("now Comsys") - part 1/2 - dated 2002-08-01]

0485.pdf [Employment Agreement (BAL Associates, Inc.) - Michael/Mike Bronson - dated 1997-08-15]

0486.pdf [Contingent Workforce Supplier Agreement between PrO and Venturi Partners - dated 2004-08-05]

0487.pdf [Master Services Agreement between Sun and TelTech International Corp. - Jürgen Kreileder - dated 2000-03-01]

0488.pdf [Agreement (subcontracting) between Sun and ZAO "Elbrus MCST" (Russia) - dated 2002-09-01]

1074.pdf [Email from Alan Eustace, Google, to Safra Catz, Oracle - "We will not pay for code that we are not using" - dated 2010-06-28]

1076.pdf [Color photocopy of a CD - Getting Started with J2SE 5.0 - stamp placement suggests the exhibit is the CD, not the photocopy]

1077.pdf [B/W photocopy of a CD and its cover - Getting Started with J2SE 5.0 - the exhibit is the photocopy]

1078.pdf [Request for Registration of Copyright in Computer Program - Java 2 Standard Edition, Version 5.0 - dated 2004- 12-20]

1081.pdf [Request for Registration in Computer Program - Java 2 Standard Edition 1.4 - dated 2005-04-20]

1082.pdf [License Agreement + Amendment 1 - Sun licensing Unicode framework from Taligent/IBM for Java - dated 1996- 07-17, 1996-07-19]

1084.pdf [Java Specification Participation Agreement - Steven Knudsen (PsiNaptic Inc.) - dated 2001-06-14]

1085.pdf [Java Specification Participation Agreement - Olivier Lefivre - dated 2002-12-08]

1086.pdf [Java Specification Participation Agreement - InnoTek GmbH - dated 2003-02-18]

1087.pdf [Java Specification Participation Agreement - SymSoft AB - dated 1998-12-15]

1088.pdf [Java Specification Participation Agreement - Exabyte Corporation - dated 1999-05-05]