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
update 2 | 439 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
"while the VM is running"
Authored by: Anonymous on Monday, May 14 2012 @ 06:49 PM EDT
Oracle sure tries hard to get Dr. August to either say something they can twist to mean either that the VM is "running" when dexopt does its thing, or to say something that contradicts McFadden's testimony. In response to questions like this, I think its pretty hard to give truthful answers that are difficult to misinterpret. I thought Dr. August did pretty well.
Oracle: And do you agree that a dex file contains symbolic references when it arrives on the device?

August: Yes.

Oracle: Do you agree that the Dalvik VM resolves functions dynamically?

August: It does.

Oracle: And you were here when Dan Bornstein testified that dexopt is part of the Dalvik VM?

August: Yes.

Oracle: And you agree?

August: They share the same code.

Oracle: And dexopt loads the dex file into the Dalvik VM?

August: No. Dexopt processes the file that is placed on the device.

Oracle: Dexopt processes the file while the Dalvik VM is running, true?

August: Not for the same program.

Oracle: That’s not what I asked. Is the Dalvik VM running?

August: Sometimes.

Oracle: Let’s see what Mr. McFadden said. He said that Dexopt processes the dex file while the Dalvik VM is running. Do you disagree?

August: I don’t disagree. I’m just being more specific.

Oracle: Dexopt loads the dex file into the Dalvik VM, true? When dexopt loads the file into dexopt, it loads it into the Dalvik VM?

August: If you mean the code that is a part of Dexopt, yes.

(Of course, the VM is not running *the program being optimized* while dexopt is doing its thing. Dexopt shares some of the VM's code, but that doesn't mean that the VM is running while dexopt is running. And it *definitely* doesn't mean that *the program being optimized* is running then. Obviously it isn't. The truth is not on their side, and Oracle's success with this patent depends entirely on confusing and misleading the jury.)

[ Reply to This | Parent | # ]

update 2
Authored by: Anonymous on Monday, May 14 2012 @ 07:00 PM EDT
My interpretation (I'm the one who wrote these notes) is that Oracle was trying
to argue that Dr. August's definitions were so hyper-precise that even Oracle's
Java implementation didn't infringe the patent. Basically trying to say that his
definitions were too weaselly since they excluded Oracle's VM too.

Only problem is that there's no evidence that the Sun/Oracle Java VM ever
actually used this patented technique nor is that relevant to this case. The
only issue is whether Android uses the technique described in the patent itself.
That's why they were shut down on this line of questioning.

[ Reply to This | Parent | # ]

Symbolic, Indirect, Direct references
Authored by: Anonymous on Monday, May 14 2012 @ 08:32 PM EDT

I have an analogy here for anyone still confused about this part - over which Oracle were clearly trying to cause confusion.

Consider the Bible. It has a very clear structure to it - a series of books identified by name and arranged in a consistent sequence, each of which contains a number of chapters, each of which contains a number of verses.

You could store any normal edition of the Bible - or analogous texts - in the following Java class:

class Bible {
public String[] bookNames;
public String[][][] verses;
};

This simply means that we have an array of books which is an array of chapters which is an array of verses, and each book has a name.

If we now refer to a particular verse as, for example, "John 11:35", that is what we would call a "symbolic reference". After parsing the string to extract the book name ("John"), we need to search the bookNames array to discover which index in the "book" level of the array corresponds to that named chapter. This is what is referred to as "resolving" the reference.

Once we have the index into the book level, we also need to follow the index into the chapter level, and then the index into the verse level of the arrays. We have numeric references here, so this is not a symbolic reference, but what we call an "indirect reference". We have to "indirect" through several levels of the table before we find the data we are looking for. Indirect references are very common and have been hardware-supported in ordinary CPUs at least since the late 1970s (6502, 68000 both released before 1980).

After all that, we are given a pointer to a String object, which - hopefully - contains "Jesus wept.", at least for a standard Bible. This short text is the "actual data" or "actual field data".

The pointer to that String object, once obtained, can be stored elsewhere as a "direct reference". A priest could make a new array with a series of these pointers as a passage to read during his sermon - analogous to a bookmark. The text is not duplicated, we just have a much more direct method of getting there.

However, the priest can't give such a reference directly to the congregation for them to read along - the verses will probably be on different pages in a different printing, or maybe the verses themselves are slightly different if someone has a different edition of the Bible. But the indexes of books, chapters and verses will be the same, so the priest can hand out either the symbolic reference as above, or an indirect reference as defined below:

class BiblePassage {
int book, chapter, firstVerse, lastVerse;
}

Google's contention is simply that Dalvik uses only this form of reference after dexopt has run, and that dexopt is not run while the application it is operating on is running.

So symbolic references exist before dexopt is run, but not afterwards - they have all been resolved into direct and indirect references. And while the application is running, only direct and indirect references are in use at the VM level, not symbolic references.

Hope this is now clearer.

[ Reply to This | Parent | # ]

update 2
Authored by: Anonymous on Tuesday, May 15 2012 @ 02:27 AM EDT
If I was on the jury I would find it very difficult to say the preponderance of
the evidence was with Oracle on the patent issues. They seemed to tripping over
and over on the dynamic vs static issue. It was almost as bad with index is a
symbol argument which seems like a coin toss. Oracle didn't do itself any favors
with the pointless smugness stunt nor did they with the "that's the way JVM
works" which was brilliantly contrasted with, "it might matter if the
patent worked that way". I can see a rather short jury deliberation. I
could feel completely comfortable that Google violated patents but Oracle failed
to prove it.

[ Reply to This | Parent | # ]

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 )