As part of its suit against Google, Oracle accused the search giant of violating seven patents covering Java technology with its Android platform. Five of the patents were dropped from the case upon reexamination by the US Patent and Trademark Office (USTPO).
On April 22, patent No. 5,966,702 was validated by the USPTO and Oracle requested that it be allowed into the case against Google.
Judge William Alsup informed the dueling parties on Wednesday evening that he rejected Oracle's request on the basis that "Oracle offered to dismiss with prejudice all patents that had been rejected in a final office action subject to reinstatement in the event the PTO reversed itself prior to the start of trial." The trial started on April 16, but Oracle tried to argue otherwise.
A few days later, the PTO did reverse itself as to the '702 patent but the reversal came a few days too late, for the trial had already started and the dismissals with prejudice had already become effective. Oracle's argument that the patent "trial" has not yet started is wrong. The was and is one trial with three phases. The trial started on April 16. This is not only the plain meaning of the term but any other interpretation would inject great prejudice given that the parties have relied on the issues to be tried and that reliance should not be turned on its head in mid-trial. Oracle will be required to stand by its word and live with the dismissal with prejudice.
The patent is described as follows:
A method and apparatus for pre-processing and packaging class files. Embodiments remove duplicate information elements from a set of class files to reduce the size of individual class files and to prevent redundant resolution of the information elements. Memory allocation requirements are determined in advance for the set of classes as a whole to reduce the complexity of memory allocation when the set of classes are loaded. The class files are stored in a single package for efficient storage, transfer and processing as a unit. In an embodiment, a pre-processor examines each class file in a set of class files to locate duplicate information in the form of redundant constants contained in a constant pool. The duplicate constant is placed in a separate shared table, and all occurrences of the constant are removed from the respective constant pools of the individual class files. During pre-processing, memory allocation requirements are determined for each class file, and used to determine a total allocation requirement for the set of class files. The shared table, the memory allocation requirements and the reduced class files are packaged as a unit in a multi-class file.