The claims have come to light in Sun's high-profile trademark and breach-of-contract case against Microsoft, which was filed last October. It accuses Microsoft of deliberately trying to sabotage Java's "write once, run anywhere" promise by making Windows implementations incompatible with those that run on other platforms.
Specifically, the suit alleges that Microsoft's Java products omitted a so-called Java native interface, or JNI, as well as a Remote Method Invocation, or RMI--features that help developers write Java code. It also claims Microsoft replaced certain parts of the Java code with Windows-specific code in a way that confuses programmers into thinking they are using pure Java.
Microsoft has vigorously denied the charges, arguing that it is in full compliance with compatibility tests required under its licensing agreement with Sun. In March U.S. District Judge Ronald Whyte rejected Microsoft's defense that Sun was applying the wrong test and added that Sun was likely to prevail in the suit. Nonetheless, Microsoft has said it will ultimately prove that its Java products meet all the requirements of the license.
Sun says Microsoft has fixed some of the earlier glitches but is now adding two new alleged incompatibilities to its list. One concerns the addition of new keywords that are available to programmers, and the other revolves around new directives in Microsoft's Java compiler that make it dependent on Windows implementations. These features came to light in the discovery phase of the suit, as well as in the normal course of testing Microsoft's products, said Sun spokeswoman Lisa Poulson.
The new alleged incompatibilities apply to pre-release versions of Microsoft's Software Developers Kit for Java 3.0 and Visual J++, both tools used by developers, as well as to Internet Explorer 4.01. Sun added that these products no longer mislabeled so-called class libraries, which Poulson called "a step toward compliance."
However, the products still omit the JNI and RMI specifications, in violation of Microsoft's Java license, Poulson said, adding that Sun has yet to complete its testing of Windows 98.
She said that the company announced the new alleged incompatibilities in order to help Java programmers.
"We have an obligation to let developers know what to look for," she said. "They need to know what incompatibilities exist. This has no impact on the legal tactics at all."
Microsoft spokesman Jim Cullinan declined to discuss Sun's specific allegations, noting the pending litigation. But he reiterated the software giant's earlier contentions that it in no way has breached its agreement with Sun.
"We have fully complied with our contract," Cullinan said. "We will continue to provide the best Java implementation for developers to use the great features on the Windows platform."
In May, Sun stepped up its suit by adding new allegations of exclusionary conduct on the part of Microsoft and taking aim at Windows 98, released two weeks ago. Sun requested an injunction that would require Microsoft to either make the Java features in the new operating system compatible with its tests or to include Sun's version of Java with every copy of Windows sold. A hearing on the matter is scheduled for September 4.