Declaration_of_Carla_Schroer_In_Support_of_Plaintiff's_Motion_for_Preliminary_Injunction_Legal_document_filed_February_27th_1998.
Declaration of Carla Schroer In Support of Plaintiff's Motion for
Preliminary Injunction
Legal document filed with the court on February 27th, 1998.
Declaration of Carla Schroer
COOLEY GODWARD LLP
LLOYD R. DAY, JR. (90875)
PAUL J. LAVERONI (43846)
JANET L. CULLUM (104336)
MARK B. PITCHFORD (116811)
Five Palo Alto Square
3000 El Camino Real
Palo Alto, CA 94306-2155
Telephone: (650) 843-5000
Attorneys for Plaintiff
SUN MICROSYSTEMS, INC.
UNITED STATES DISTRICT COURT
NORTHERN DISTRICT OF CALIFORNIA
SAN JOSE DIVISION
SUN MICROSYSTEMS, INC.,
a Delaware corporation,
Plaintiff,
v.
MICROSOFT CORPORATION,
a Washington corporation,
Defendant.
|
)
)
)
)
)
)
)
)
)
)
)
|
No. C 97-20884 RMW (PVT) ENE
Declaration of Carla Schroer In Support of Plaintiff's Motion for Preliminary Injunction
Date: February 27, 1998
Time: 9:00 a.m.
Judge: Ronald M. Whyte
Crtrm: 6 |
I, Carla Schroer, declare:
1. I am employed by Sun Microsystems, Inc. ("Sun") as a Senior Engineering Manager in Sun's JavaSoft Division. I have personal knowledge of the facts contained in this Declaration and, if called as a witness, I could and would testify competently to them.
2. I received a Bachelor of Arts degree in 1986 from New College of the University of South Florida, with a concentration in Computer Studies.
3. From at least March 1988 until the present, I have continuously been employed in the computer software industry as a technical support, quality assurance and software test engineer and manager. From March 1988 to February 1992 I was employed by IntelliCorp Inc. as a Technical Support Engineer and, subsequently, as a Quality Assurance ("QA") Manager. As a Technical Support Engineer I provided general technical assistance to KEE software development customers. KEE is a Lisp-based development environment for creating object-oriented and rule-based expert systems. My responsibilities included support of KEE beta sites, the development of testing tasks, the execution of automated and manual tests for KEE releases, and the coordination of the testing effort of the technical support department. As QA Manager I was responsible for testing the 1.0 and subsequent patch releases of the ProKappa object-oriented application development system. I managed the design, implementation, and maintenance of an automated test system written using the ProKappa environment. I also planned test strategy and oversaw test implementation and execution.
4. From February 1992 until March 1995, I was employed by Frame Technology, first as a QA Manager and subsequently as a Senior QA Manager. As a QA Manager I managed a group of 6 to 8 QA engineers responsible for testing the releases of FrameMaker, FrameBuilder, SGML Utilities, and FrameViewer on a variety of Unix workstations. My group was involved in all phases of the software development cycle and was responsible for review of functional specifications, development of test materials, execution of manual and automated tests, and submission of bug reports. I was responsible for the hiring and management of all personnel of the group, the development of test strategy, the creation and tracking of schedules, prioritization of reported bugs, and participation in ship/no ship decisions. As Senior QA Manager I was the QA program manager for the 5.0 release of FrameMaker, FrameViewer, and FrameMaker Developer's Kit on UNIX, Mac, and Windows platforms. I was responsible for the development of test strategy, QA project schedules, bug database requirements, and project milestone definitions. I participated in the development and improvement of engineering processes, including documentation, functional specifications, code reviews, engineering change orders, and release engineering process.
5. In March 1995 I was hired by Sun as a QA Manager on Sun's JAVAÔ technology project. During the course of 1995, I assumed responsibility for all compatibility testing, developer support, and release engineering for the JAVAÔ technology project. I was also responsible for hiring individuals to carry out those functions and for carrying out the administrative duties that accompany the development and growth of a QA department. Since 1995 my responsibilities have included the development, execution, and refinement of the tests, tools and procedures necessary to determine whether products incorporating the JAVAÔ technology conform to and are compatible with Sun's applicable specifications. In my capacity as compatibility test manager, I currently supervise and manage a group of over 30 quality assurance and software test engineers.
6. Sun's compatibility test suites for the JAVAÔ technology, commonly called the JAVAÔ Compatibility Kit ("JCK"), are developed and distributed by Sun to test that products developed by Sun's source code licensees using the JAVAÔ technology conform to Sun's specifications and set of public application programming interfaces ("APIs") for the JAVAÔ technology. Under each of the license and distribution agreements granted by Sun for the JAVAÔ technology, the right to distribute products that incorporate Sun's JAVAÔ technology is in all cases conditioned on the requirement that each such product first pass the JCK test suite that accompanied the version of the JAVAÔ technology incorporated in the product before the product is released for commercial distribution. The compatibility test program for implementations of the JAVAÔ technology is a self-test program that relies in large measure upon each licensee to administer the JCK tests to its respective products and pass the required JCK tests prior to the commercial release of any product incorporating Sun's JAVAÔ technology. In my experience, Sun's source code licensees customarily inform Sun of any compatibility tests their products fail to pass, and discuss with Sun the reasons or causes for such test failures, prior to the commercial release or distribution of their products. On occasion, Sun has discovered subsequent to a licensee's commercial release of a product incorporating JAVAÔ technology that the product fails to pass one or more valid JCK tests. In all such instances of which I am aware, Sun has contacted the subject licensee and, with the sole exception of Microsoft, secured its written agreement to modify its product implementation in a current or subsequent release to bring the non-compatible product into conformity with Sun's specifications and set of public APIs for the JAVAÔ technology, and to pass Sun's JCK test suite.
7. In some instances Sun determines that a particular JCK test is invalid and therefore need not be passed by a product implementation to establish conformance with Sun's specifications, including the public API set, for the JAVAÔ technology. For example, a particular JCK test program may have a bug which renders that particular test's result erroneous or ambiguous. Alternatively, the test may fail to track precisely the specification. In such cases, Sun excludes the affected test from the list of JCK tests required for compatibility as and when Sun learns of the test problem. Except for those JCK tests which have been determined by Sun to be invalid and therefore not required to establish compatibility, each test in the JCK test suite must be passed by a licensee's product incorporating the JAVAÔ technology prior to the licensee's commercial release of the product.
8. In January 1996, Sun released the first commercial version of the JAVAÔ Development Kit ("JDK") 1.0. At the same time Sun released approximately 300 tests developed by my group of engineers to assist Sun's source code licensees of the JAVAÔ technology to determine whether their product implementations of the JAVAÔ 1.0 technology were compatible with Sun's specifications for the JAVAÔ technology, as reflected in the JDK 1.0 release. Collectively, the 300 or so tests released with the JDK 1.0 version of the JAVAÔ technology were called the JAVAÔ 1.0 compatibility test suite.
9. In February 1997, Sun released the JDK 1.1 upgrade of the JAVAÔ technology. The JDK 1.1 release was accompanied with a far more extensive suite of compatibility tests, called the JCK 1.1a test suite. The JCK 1.1a test suite incorporates over 8,000 separate tests and, like the 1.0 test suite before it, is designed to enable Sun's source code licensees to determine whether their product implementations of the JDK 1.1 version of Sun's JAVAÔ technology conform with Sun's specifications for the JAVAÔ technology, as upgraded by the JDK 1.1 release.
10. Microsoft is a source code licensee of the JAVAÔ technology. In my capacity as manager of compatibility testing for the JAVAÔ
technology, I have responsibility for monitoring Microsoft's compliance with its contractual obligation to pass Sun's compatibility test suites prior to the commercial release of each Microsoft product that implements Sun's JAVAÔ technology. In my capacity as manager of compatibility testing, I have read and am familiar with the March 11, 1996 Technology License and Distribution Agreement between Sun and Microsoft.
11. In or about March 1996 I supervised the delivery of Sun's 1.0 test suite to Microsoft.
12. On or about February 16, 1997, I supervised the delivery of Sun's JCK 1.1a test suite to Microsoft via the Javasoft Partners Website.
13. On September 30, 1997, Microsoft commenced the commercial distribution of its Internet Explorer 4.0 ("IE 4.0") browser via the Microsoft Website. According to Microsoft, IE 4.0 incorporates Sun's JDK 1.1 technology. A true and correct copy of the Microsoft Webpage announcing the commercial release of IE 4.0 on September 30, 1997 is attached hereto as Exhibit A.
14. Prior to its commercial release of IE 4.0 on September 30, 1997, a Microsoft representative contacted Sun to inquire whether three of the compatibility tests contained in the JCK 1.1a test suite were valid tests, and whether IE 4.0 would be required to pass these three tests prior to Microsoft's commercial release of its IE 4.0 product. Upon review of Microsoft's inquiry, Sun informed Microsoft on September 9, 1997 that two of the three tests (tests.lang.clss092.clss09201.clss09201 and tests.lang.exec007.exec00704.exec00704) were valid tests and that IE 4.0 would be required to pass both tests prior to its commercial release. The third test (tests.lang.binc033.binc03301.binc03301) was determined by my department to be an invalid test. It was therefore placed on the list of excluded tests, and Microsoft was informed that IE 4.0 would not be required to pass the invalid, excluded test prior to the commercial release of IE 4.0.
15. Because Microsoft claims that IE 4.0 incorporates Sun's JDK 1.1 technology, section 2.6(a) of the Technology License and Distribution Agreement requires IE 4.0 to pass the JCK 1.1a test suite prior to the commercial distribution of IE 4.0. From September 30 through October 6, 1997, I personally supervised Sun's compatibility testing of Microsoft's IE 4.0 to determine whether IE 4.0 passed the JCK 1.1a test suite. Beginning late in the evening of September 30, 1997, I directed a group of Sun engineers in electronically downloading a binary copy of the commercial version of IE 4.0 from the Microsoft Website, and in performing each of the JCK 1.1a compatibility tests against the downloaded version of Microsoft's commercial release of IE 4.0. The IE 4.0 binary code downloaded from the Microsoft Website on September 30, 1997 is labelled IE 4.0 version number 4.71.1712.6 and bears the date 9/18/97; the "java" class files are labelled version number 4.79.2252 and bear the date 9/12/97. The IE 4.0 binary code downloaded from the Microsoft Website on September 30, 1997 fails to pass the JCK 1.1a compatibility test suite in at least the following important respects:
a. Microsoft's IE 4.0 fails to pass the JCK 1.1a "SignatureTest". The set of public APIs for the "java" class libraries implemented in Microsoft's IE 4.0 have been modified by Microsoft to delete classes from the "java" class hierarchy, and to add and delete various methods and fields in the "java" classes. These non-conforming modifications were not previously disclosed to Sun by Microsoft and result in the failure of IE 4.0 to pass the JCK 1.1a "SignatureTest". The "SignatureTest" examines the set of public APIs of the "java" class libraries implemented in IE 4.0 to determine if it conforms with the specified set of public APIs for the JAVAÔ technology. A table listing the 901 changes, additions and deletions detected by the JCK 1.1a "SignatureTest" in Microsoft's IE 4.0 is attached hereto as Exhibit B.
b. In running the remaining compatibility tests of the JCK 1.1a test suite, we discovered that Microsoft's IE 4.0 does not include the JAVAÔ Remote Method Invocation ("RMI") class library. Consequently, Microsoft's IE 4.0 fails to pass any of the 343 required JCK 1.1a compatibility tests for the RMI class library.
c. We also discovered that Microsoft's IE 4.0 does not support the JAVAÔ
Native Interface ("JNI"). Accordingly, IE 4.0 fails to pass any of the 239 required JCK 1.1a compatibility tests for JNI.
d. The IE 4.0 fails to pass the two tests for class initialization (tests.lang.clss092 and tests.lang.exec007) which Microsoft had been informed in September 1997 were valid, required tests.
e. Our tests of the IE 4.0 also reveal a number of compatibility test failures that appear to be attributable to the security scheme in Microsoft's IE 4.0, and some failures due to potentially invalid tests.
16. In addition to the foregoing, my group employed tests to determine if additional "java" classes had been added by Microsoft to the "java" class libraries of the commercial release version of IE 4.0. These tests reveal that Microsoft has added "peer" implementation classes to the "java.awt" class library. The list of improperly added "java.awt" peer classes in IE 4.0 is attached hereto as Exhibit C.
17. At no time prior to the date hereof has Microsoft informed Sun that the commercial version of IE 4.0 fails to pass any compatibility test in the JCK 1.1a test suite other than the three tests described in paragraph 14 above. In particular, Microsoft has never advised Sun that IE 4.0 fails to pass the JCK 1.1a "SignatureTest", any of the 343 required RMI tests, or any of the 239 required JNI tests.
18. At or about the end of October 1997, Microsoft released for retail distribution a commercial version of IE 4.0 packaged on a CD-ROM. True and correct copies of the box in which the retail version of the IE 4.0 CD-ROM is currently packaged and sold at Fry's Electronics in Palo Alto, California, and the cardboard sleeve in which the IE 4.0 CD-ROM is contained within the box, are attached as Exhibit D.
19. On November 7, 1997 I directed a group of Sun engineers in performing the JCK 1.1a "SignatureTest" on the commercial version of IE 4.0 contained on the CD-ROM packaged within the box and sleeve attached as Exhibit D. The binary code contained on the CD-ROM version of IE 4.0 is labelled IE 4.0 version number 4.71.1712.6 and bears the date 9/18/97; the "java" class files are labeled 4.79.2252 and bear the date 9/12/97. The binary code contained on the CD-ROM version of IE 4.0 commercially distributed by Microsoft appears to be identical to the binary code contained in the version downloaded from the Microsoft Website on September 30, 1997.
20. The CD-ROM version of IE 4.0 fails to pass the JCK 1.1a compatibility test suite for each of the same reasons that the September 30, 1997 downloaded version of IE 4.0 fails to pass the JCK 1.1a test suite. In particular, the set of public APIs for the "java" class libraries implemented in Microsoft's CD-ROM version of IE 4.0 have been modified by Microsoft to add various classes to the "java" class hierarchy, and to add and delete various methods and fields in the "java" classes. These non-conforming modifications were not previously disclosed to Sun by Microsoft, yet fail to pass the JCK 1.1a "SignatureTest". A list of the 901 non-conforming changes, additions and deletions detected by the JCK 1.1a "SignatureTest" in the CD-ROM version of Microsoft's IE 4.0 is attached hereto as Exhibit E. In addition, the CD-ROM version of IE 4.0 fails to include RMI or JNI, and for that reason fails each of the 582 JCK 1.1a compatibility tests relating to these features. Finally, the CD-ROM version of IE 4.0 fails both of the two class initialization tests that the September 30, 1997 downloaded version of IE 4.0 also failed.
21. On or about November 4, 1997 I became aware that Microsoft had recently posted a notice on its Website that a new and "updated" version of the "java" virtual machine and class libraries for IE 4.0 was available for electronic downloading from the Microsoft Website. On November 4, 1997 I directed a group of Sun engineers in electronically downloading the "updated" version of the IE 4.0 binary code from the Microsoft Website and in subsequently performing the JCK 1.1a compatibility tests on the upgraded version of IE 4.0. The IE 4.0 binary code downloaded from the Microsoft Website on November 4, 1997 is labeled IE 4.0 version number 4.71.1712.6 and bears the date 9/18/97; the "java" class files are labeled 4.79.2334 and bear the date 10/25/97. Although the "updated" version of IE 4.0 binary code downloaded from the Microsoft Website on November 4, 1997 bears the identical IE 4.0 version number as the binary code downloaded from the Microsoft Website on September 30, 1997, the "java" class libraries and the set of public "java" APIs in the September 30, 1997 downloaded version and the CD-ROM version of IE 4.0 are different than the corresponding set of public "java" APIs in the November 4, 1997 downloaded version of IE 4.0.
22. The 10/25/97 "updated" version of IE 4.0, downloaded on November 4, 1997, fails to pass the JCK 1.1a test suite. In particular, the set of public APIs for the "java" class libraries implemented in the 10/25/97 "updated" version of IE 4.0 have been modified by Microsoft to delete various classes to the "java" class hierarchy, and to add and delete various methods and fields in the "java" classes. These non-conforming modifications were not previously disclosed to Sun by Microsoft, and fail to pass the JCK 1.1a "SignatureTest". As shown in Exhibit F attached, the 10/25/97 "updated" version of IE 4.0 fails to correct the overwhelming majority of the non-conforming additions, modifications and deletions Microsoft has made in IE 4.0 to Sun's specified set of public "java" APIs for the JDK 1.1 version of the JAVAÔ
technology, and in certain cases makes additional non-conforming changes and additions to Sun's specified of public "java" APIs. A table listing the 895 non-conforming changes, additions and deletions detected by the JCK 1.1a "SignatureTest" in the 10/25/97 "updated" version of the IE 4.0 "java" class files is attached hereto as Exhibit G. In addition, the 10/25/97 "updated" version of IE 4.0 fails to include RMI or JNI, and for that reason fails each of the 582 JCK 1.1a compatibility tests relating to these features. However, unlike the September 30, 1997 downloaded version and the CD-ROM version of IE 4.0, the 10/25/97 "updated" version of IE 4.0 passes both of the two class initialization tests that the CD-ROM version fails.
23. I have personally supervised Sun's compatibility testing of the first commercial version of Microsoft's Software Development Kit for JAVA ("SDKJ") version 2.0 with the JCK 1.1a test suite. On October 7, 1997, I directed a group of Sun engineers in downloading a binary copy of the commercial version of SDKJ 2.0 from the Microsoft Website, and in subsequently performing each of the JCK 1.1a compatibility tests against the downloaded version of Microsoft's commercial release of SDKJ 2.0. The SDKJ 2.0 binary code downloaded from the Microsoft Website on October 7, 1997 is labelled SDKJ 2.0 version number 4.79.2252, and bears the date 9/12/97. The SDKJ binary code (version 4.79.2252) downloaded from the Microsoft Website on October 7, 1997 fails to pass the JCK 1.1a compatibility test suite in at least the following important respects:
a. Microsoft's SDKJ fails to pass the JCK 1.1a "SignatureTest". The set of public APIs for the "java" class libraries implemented in Microsoft's SDKJ 2.0 have been modified by Microsoft to delete classes from the "java" class hierarchy, and to add and delete various methods and fields in the "java" classes. These non-conforming modifications were not previously disclosed to Sun by Microsoft and result in 901 errors recorded by the JCK 1.1a "SignatureTest". A table listing the 901 changes, additions and deletions detected by the JCK 1.1a "SignatureTest" in the 4.79.2252 version of the SDKJ 2.0 "java" class files is attached hereto as Exhibit H.
b. Microsoft's SDKJ 2.0 does not support the Remote Method Invocation ("RMI"). 792 of the "SignatureTest" errors are attributable to Microsoft's failure to implement Sun's RMI Class Library in SDKJ 2.0. Microsoft's failure to implement RMI resulted in the failure of 343 required JCK 1.1a tests in addition to the "SignatureTest".
c. Microsoft's SDKJ 2.0 does not support the JNI. Accordingly, SDKJ 2.0 fails all 239 required JCK 1.1a compatibility tests for JNI.
d. Our tests of Microsoft's SDKJ 2.0 also revealed a number of compatibility tests failures that could be attributed to the security scheme in Microsoft's IE 4.0, and some failures due to potentially invalid tests.
I declare under penalty of perjury under the laws of the United States that the foregoing is true and correct.
Executed this ___ day of November, 1997.
Exhibit B
Microsoft IE 4.0 API Modifications Reported by "SignatureTest"
IE 4.0 version 4.71.1712.6 dated 9/18/97
"java" class files version 4.79.2252 dated 9/12/97
| |
total |
awt |
awt.peer |
util (I18N classes) |
lang |
| deleted methods |
4 |
3 |
0 |
0 |
1 |
| added methods |
49 |
6 |
19 |
5 |
19 |
| added fields |
56 |
2 |
0 |
50 |
4 |
Total non-RMI modifications found by signature test |
109 |
11 |
19 |
55 |
24 |
| RMI deleted classes |
48 |
N/A |
N/A |
N/A |
N/A |
RMI deleted methods, constructors, fields |
744 |
N/A |
N/A |
N/A |
N/A |
Total modifications reported by signature test |
901 |
Deleted methods
- java.awt.image.ColorModel -- method public void finalize()
- java.awt.image.DirectColorModel -- method public void finalize()
- java.awt.image.IndexColorModel -- method public void finalize()
- java.io.ByteArrayOutputStream -- method public java.lang.String toString(java.lang.String)
Added Methods - AWT
- java.awt.EventQueue -- method public void _postEvent(java.awt.AWTEvent)
- java.awt.Font -- method public int getNativeData()
- java.awt.SystemColor -- method public int getWin32Index()
- java.awt.image.DirectColorModel -- method public com.ms.awt.peer.DirectColourModelData getToolkitData()
- java.awt.image.IndexColorModel -- method public [I getToolkitData()
- java.awt.image.IndexColorModel -- method public boolean getOpaque()
Added fields - AWT
- java.awt.Font -- field public transient int java.awt.Font.pData
- java.awt.SystemColor -- field public static final java.awt.SystemColor java.awt.SystemColor.appWorkspace
Added methods - AWT peer
java.- awt.peer.ButtonPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CanvasPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CheckboxPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ChoicePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ContainerPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.DialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FileDialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FramePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LabelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LightweightPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ListPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.PanelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollPanePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollbarPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextAreaPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextFieldPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.WindowPeer -- method public abstract java.awt.Rectangle getBounds()
Added fields - International Classes
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AFRIKAANS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ALBANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AUSTRALIA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BASQUE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN_FRENCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BRAZILIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BULGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BYELORUS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CATALAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CROATIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CZECH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DUTCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ESTONIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.FINNISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_AUSTRIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GREEK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HEBREW
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HUNGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ICELANDIC
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.INDONESIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.IRELAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.JAPANESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.KOREAN_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LATVIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LITHUANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.MEXICAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NEWZEALAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN_NYNORSK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.POLISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.PORTUGESE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ROMANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.RUSSIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SERBIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SIMPLIFIED_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SINGAPORE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVAKIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVENIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SOUTH_AFRICA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH_MODERN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWEDISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.THAI
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TRADITIONAL_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TURKISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.UKRANIAN
Added methods - International classes
- java.util.Locale -- constructor public java.util.Locale(java.lang.String,java.lang.String,java.lang.String,int,int)
- java.util.Locale -- method public [Ljava.util.Locale; getDefaultLocaleList()
- java.util.Locale -- method public int getCodePage()
- java.util.Locale -- method public int getLCID()
- java.util.Locale -- method public static java.util.Locale getLocaleFromLCID(int)
Added Methods - lang
- java.lang.Class -- method public [Ljava.lang.reflect.Method; getMethods(int)
- java.lang.Class -- method public java.lang.Class getInterface(java.lang.String)
- java.lang.Class -- method public java.lang.reflect.Method getDeclaredMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Class -- method public java.lang.reflect.Method getMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Runtime -- method public static com.ms.awt.peer.INativeServices getNativeServices()
- java.lang.SecurityManager -- method public void checkFileDialog()
- java.lang.SecurityManager -- method public void checkMultimedia()
- java.lang.SecurityManager -- method public void checkRegistry(int,java.lang.String)
- java.lang.SecurityManager -- method public void checkSystemStreams(int)
- java.lang.VerifyError -- interface interface com.ms.security.auditing.ISecurityAuditInfo
- java.lang.VerifyError -- method public [Ljava.lang.String; getAuditDetails()
- java.lang.VerifyError -- method public int getPC()
- java.lang.VerifyError -- method public int getViolationCode()
- java.lang.VerifyError -- method public java.lang.String getAuditIdentifier()
- java.lang.VerifyError -- method public java.lang.String getClassName()
- java.lang.VerifyError -- method public java.lang.String getMethodName()
- java.lang.VerifyError -- method public java.lang.String getViolationDescription()
- java.lang.reflect.Method -- method public int getParameterCount()
- java.lang.reflect.Method -- method public java.lang.String getDescriptor()
Added Fields - lang
- java.lang.reflect.Field -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Constructor -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Member -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Method -- field public static final int java.lang.reflect.Member.PUBLIC_DECLAREDAdded protected methods
Deleted Classes
- java.rmi.AccessException
- java.rmi.AlreadyBoundException
- java.rmi.ConnectException
- java.rmi.ConnectIOException
- java.rmi.MarshalException
- java.rmi.Naming
- java.rmi.NoSuchObjectException
- java.rmi.NotBoundException
- java.rmi.RMISecurityException
- java.rmi.RMISecurityManager
- java.rmi.Remote
- java.rmi.RemoteException
- java.rmi.ServerError
- java.rmi.ServerException
- java.rmi.ServerRuntimeException
- java.rmi.StubNotFoundException
- java.rmi.UnexpectedException
- java.rmi.UnknownHostException
- java.rmi.UnmarshalException
- java.rmi.dgc.DGC
- java.rmi.dgc.Lease
- java.rmi.dgc.VMID
- java.rmi.registry.LocateRegistry
- java.rmi.registry.Registry
- java.rmi.registry.RegistryHandler
- java.rmi.server.ExportException
- java.rmi.server.LoaderHandler
- java.rmi.server.LogStream
- java.rmi.server.ObjID
- java.rmi.server.Operation
- java.rmi.server.RMIClassLoader
- java.rmi.server.RMIFailureHandler
- java.rmi.server.RMISocketFactory
- java.rmi.server.RemoteCall
- java.rmi.server.RemoteObject
- java.rmi.server.RemoteRef
- java.rmi.server.RemoteServer
- java.rmi.server.RemoteStub
- java.rmi.server.ServerCloneException
- java.rmi.server.ServerNotActiveException
- java.rmi.server.ServerRef
- java.rmi.server.Skeleton
- java.rmi.server.SkeletonMismatchException
- java.rmi.server.SkeletonNotFoundException
- java.rmi.server.SocketSecurityException
- java.rmi.server.UID
- java.rmi.server.UnicastRemoteObject
- java.rmi.server.Unreferenced
Exhibit C
Added public classes to IE 4.0 version 4.71.1712.6 dated 9/12/97
All classes were added in the java.awt package
java.awt.WButtonPeer
java.awt.WCheckboxMenuItemPeer
java.awt.WCheckboxPeer
java.awt.WChoicePeer
java.awt.WLabelPeer
java.awt.WListPeer
java.awt.WMenuBarPeer
java.awt.WMenuItemPeer
java.awt.WMenuPeer
java.awt.WPopupMenuPeer
java.awt.WScrollPanePeer
java.awt.WScrollbarPeer
java.awt.WTextAreaPeer
java.awt.WTextComponentPeer
java.awt.WTextFieldPeer
java.awt.WUIPeer
Exhibit D
Exhibit E
Microsoft SDK for Java 2.0 API Modifications Reported by "SignatureTest"
"java" class files version 4.79.2252 dated 9/12/97
| |
total |
awt |
awt.peer |
util (I18N classes) |
lang |
| deleted methods |
4 |
3 |
0 |
0 |
1 |
| added methods |
49 |
6 |
19 |
5 |
19 |
| added fields |
56 |
2 |
0 |
50 |
4 |
Total non-RMI modifications found by signature test |
109 |
11 |
19 |
55 |
24 |
| RMI deleted classes |
48 |
N/A |
N/A |
N/A |
N/A |
RMI deleted methods, constructors, fields |
744 |
N/A |
N/A |
N/A |
N/A |
Total modifications reported by signature test |
901 |
Deleted methods
- java.awt.image.ColorModel -- method public void finalize()
- java.awt.image.DirectColorModel -- method public void finalize()
- java.awt.image.IndexColorModel -- method public void finalize()
- java.io.ByteArrayOutputStream -- method public java.lang.String toString(java.lang.String)
Added Methods - AWT
- java.awt.EventQueue -- method public void _postEvent(java.awt.AWTEvent)
- java.awt.Font -- method public int getNativeData()
- java.awt.SystemColor -- method public int getWin32Index()
- java.awt.image.DirectColorModel -- method public com.ms.awt.peer.DirectColourModelData getToolkitData()
- java.awt.image.IndexColorModel -- method public [I getToolkitData()
- java.awt.image.IndexColorModel -- method public boolean getOpaque()
Added fields - AWT
- java.awt.Font -- field public transient int java.awt.Font.pData
- java.awt.SystemColor -- field public static final java.awt.SystemColor java.awt.SystemColor.appWorkspace
Added methods - AWT peer
java.- awt.peer.ButtonPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CanvasPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CheckboxPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ChoicePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ContainerPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.DialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FileDialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FramePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LabelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LightweightPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ListPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.PanelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollPanePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollbarPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextAreaPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextFieldPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.WindowPeer -- method public abstract java.awt.Rectangle getBounds()
Added fields - International Classes
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AFRIKAANS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ALBANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AUSTRALIA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BASQUE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN_FRENCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BRAZILIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BULGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BYELORUS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CATALAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CROATIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CZECH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DUTCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ESTONIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.FINNISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_AUSTRIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GREEK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HEBREW
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HUNGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ICELANDIC
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.INDONESIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.IRELAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.JAPANESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.KOREAN_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LATVIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LITHUANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.MEXICAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NEWZEALAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN_NYNORSK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.POLISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.PORTUGESE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ROMANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.RUSSIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SERBIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SIMPLIFIED_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SINGAPORE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVAKIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVENIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SOUTH_AFRICA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH_MODERN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWEDISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.THAI
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TRADITIONAL_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TURKISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.UKRANIAN
Added methods - International classes
- java.util.Locale -- constructor public java.util.Locale(java.lang.String,java.lang.String,java.lang.String,int,int)
- java.util.Locale -- method public [Ljava.util.Locale; getDefaultLocaleList()
- java.util.Locale -- method public int getCodePage()
- java.util.Locale -- method public int getLCID()
- java.util.Locale -- method public static java.util.Locale getLocaleFromLCID(int)
Added Methods - lang
- java.lang.Class -- method public [Ljava.lang.reflect.Method; getMethods(int)
- java.lang.Class -- method public java.lang.Class getInterface(java.lang.String)
- java.lang.Class -- method public java.lang.reflect.Method getDeclaredMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Class -- method public java.lang.reflect.Method getMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Runtime -- method public static com.ms.awt.peer.INativeServices getNativeServices()
- java.lang.SecurityManager -- method public void checkFileDialog()
- java.lang.SecurityManager -- method public void checkMultimedia()
- java.lang.SecurityManager -- method public void checkRegistry(int,java.lang.String)
- java.lang.SecurityManager -- method public void checkSystemStreams(int)
- java.lang.VerifyError -- interface interface com.ms.security.auditing.ISecurityAuditInfo
- java.lang.VerifyError -- method public [Ljava.lang.String; getAuditDetails()
- java.lang.VerifyError -- method public int getPC()
- java.lang.VerifyError -- method public int getViolationCode()
- java.lang.VerifyError -- method public java.lang.String getAuditIdentifier()
- java.lang.VerifyError -- method public java.lang.String getClassName()
- java.lang.VerifyError -- method public java.lang.String getMethodName()
- java.lang.VerifyError -- method public java.lang.String getViolationDescription()
- java.lang.reflect.Method -- method public int getParameterCount()
- java.lang.reflect.Method -- method public java.lang.String getDescriptor()
Added Fields - lang
- java.lang.reflect.Field -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Constructor -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Member -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Method -- field public static final int java.lang.reflect.Member.PUBLIC_DECLAREDAdded protected methods
Deleted Classes
- java.rmi.AccessException
- java.rmi.AlreadyBoundException
- java.rmi.ConnectException
- java.rmi.ConnectIOException
- java.rmi.MarshalException
- java.rmi.Naming
- java.rmi.NoSuchObjectException
- java.rmi.NotBoundException
- java.rmi.RMISecurityException
- java.rmi.RMISecurityManager
- java.rmi.Remote
- java.rmi.RemoteException
- java.rmi.ServerError
- java.rmi.ServerException
- java.rmi.ServerRuntimeException
- java.rmi.StubNotFoundException
- java.rmi.UnexpectedException
- java.rmi.UnknownHostException
- java.rmi.UnmarshalException
- java.rmi.dgc.DGC
- java.rmi.dgc.Lease
- java.rmi.dgc.VMID
- java.rmi.registry.LocateRegistry
- java.rmi.registry.Registry
- java.rmi.registry.RegistryHandler
- java.rmi.server.ExportException
- java.rmi.server.LoaderHandler
- java.rmi.server.LogStream
- java.rmi.server.ObjID
- java.rmi.server.Operation
- java.rmi.server.RMIClassLoader
- java.rmi.server.RMIFailureHandler
- java.rmi.server.RMISocketFactory
- java.rmi.server.RemoteCall
- java.rmi.server.RemoteObject
- java.rmi.server.RemoteRef
- java.rmi.server.RemoteServer
- java.rmi.server.RemoteStub
- java.rmi.server.ServerCloneException
- java.rmi.server.ServerNotActiveException
- java.rmi.server.ServerRef
- java.rmi.server.Skeleton
- java.rmi.server.SkeletonMismatchException
- java.rmi.server.SkeletonNotFoundException
- java.rmi.server.SocketSecurityException
- java.rmi.server.UID
- java.rmi.server.UnicastRemoteObject
- java.rmi.server.Unreferenced
Exhibit G
Microsoft IE 4.0 API Modifications Reported by "SignatureTest"
IE 4.0 with Java VM update version 4.71.1712.6 dated 9/12/97
"java" class files version 4.79.2334 dated 10/25/97
| |
total |
awt |
awt.peer |
util (I18N classes) |
lang |
| deleted methods |
9 |
3 |
0 |
6 |
0 |
| added methods |
40 |
6 |
19 |
5 |
10 |
| added fields |
54 |
0 |
0 |
50 |
4 |
Total non-RMI modifications found by signature test |
103 |
9 |
19 |
61 |
14 |
| RMI deleted classes |
48 |
N/A |
N/A |
N/A |
N/A |
RMI deleted methods, constructors, fields |
744 |
N/A |
N/A |
N/A |
N/A |
Total modifications reported by signature test |
895 |
Deleted methods
- java.awt.image.ColorModel -- method public void finalize()
- java.awt.image.DirectColorModel -- method public void finalize()
- java.awt.image.IndexColorModel -- method public void finalize()
- java.util.PropertyResourceBundle -- method public final java.awt.MenuBar getMenuBar(java.lang.string)
- java.util.PropertyResourceBundle -- method public final java.awt.Menu getMenu(java.lang.string)
- java.util.ResourceBundle -- method public final java.awt.MenuBar getMenuBar(java.lang.string)
- java.util.ResourceBundle -- method public final java.awt.Menu getMenu(java.lang.string)
- java.util.ListResourceBundle -- method public final java.awt.MenuBar getMenuBar(java.lang.string)
- java.util.ListResourceBundle -- method public final java.awt.Menu getMenu(java.lang.string)
Note: Methods number 4 -9 were removed by JavaSoft in the JDK 1.1.1 release. The removal of these methods is a correct API change, and would not be reported as errors by the JCK 1.1.1a and later "SignatureTest".
Added Methods - AWT
- java.awt.Font -- method public int getNativeData()
- java.awt.Font -- method public int setNativeData()
- java.awt.SystemColor -- method public int getWin32Index()
- java.awt.image.DirectColorModel -- method public com.ms.awt.peer.DirectColourModelData getToolkitData()
- java.awt.image.IndexColorModel -- method public [I getToolkitData()
- java.awt.image.IndexColorModel -- method public boolean getOpaque()
Added fields - AWT
none
Added methods - AWT peer
- java.awt.peer.ButtonPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CanvasPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CheckboxPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ChoicePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ContainerPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.DialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FileDialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FramePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LabelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LightweightPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ListPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.PanelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollPanePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollbarPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextAreaPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextFieldPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.WindowPeer -- method public abstract java.awt.Rectangle getBounds()
Added fields - International Classes
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AFRIKAANS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ALBANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AUSTRALIA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BASQUE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN_FRENCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BRAZILIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BULGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BYELORUS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CATALAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CROATIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CZECH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DUTCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ESTONIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.FINNISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_AUSTRIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GREEK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HEBREW
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HUNGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ICELANDIC
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.INDONESIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.IRELAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.JAPANESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.KOREAN_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LATVIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LITHUANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.MEXICAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NEWZEALAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN_NYNORSK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.POLISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.PORTUGESE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ROMANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.RUSSIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SERBIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SIMPLIFIED_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SINGAPORE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVAKIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVENIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SOUTH_AFRICA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH_MODERN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWEDISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.THAI
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TRADITIONAL_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TURKISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.UKRANIAN
Added methods - International classes
- java.util.Locale -- constructor public java.util.Locale(java.lang.String,java.lang.String,java.lang.String,int,int)
- java.util.Locale -- method public [Ljava.util.Locale; getDefaultLocaleList()
- java.util.Locale -- method public int getCodePage()
- java.util.Locale -- method public int getLCID()
- java.util.Locale -- method public static java.util.Locale getLocaleFromLCID(int)
Added Methods - lang
- java.lang.Class -- method public [Ljava.lang.reflect.Method; getMethods(int)
- java.lang.Class -- method public java.lang.reflect.Method getDeclaredMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Class -- method public java.lang.reflect.Method getMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Runtime -- method public static com.ms.awt.peer.INativeServices getNativeServices()
- java.lang.SecurityManager -- method public void checkFileDialog()
- java.lang.SecurityManager -- method public void checkMultimedia()
- java.lang.SecurityManager -- method public void checkRegistry(int,java.lang.String)
- java.lang.SecurityManager -- method public void checkSystemStreams(int)
- java.lang.reflect.Method -- method public int getParameterCount()
- java.lang.reflect.Method -- method public java.lang.String getDescriptor()
Added Fields - lang
- java.lang.reflect.Field -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Constructor -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Member -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Method -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
Deleted Classes
- java.rmi.AccessException
- java.rmi.AlreadyBoundException
- java.rmi.ConnectException
- java.rmi.ConnectIOException
- java.rmi.MarshalException
- java.rmi.Naming
- java.rmi.NoSuchObjectException
- java.rmi.NotBoundException
- java.rmi.RMISecurityException
- java.rmi.RMISecurityManager
- java.rmi.Remote
- java.rmi.RemoteException
- java.rmi.ServerError
- java.rmi.ServerException
- java.rmi.ServerRuntimeException
- java.rmi.StubNotFoundException
- java.rmi.UnexpectedException
- java.rmi.UnknownHostException
- java.rmi.UnmarshalException
- java.rmi.dgc.DGC
- java.rmi.dgc.Lease
- java.rmi.dgc.VMID
- java.rmi.registry.LocateRegistry
- java.rmi.registry.Registry
- java.rmi.registry.RegistryHandler
- java.rmi.server.ExportException
- java.rmi.server.LoaderHandler
- java.rmi.server.LogStream
- java.rmi.server.ObjID
- java.rmi.server.Operation
- java.rmi.server.RMIClassLoader
- java.rmi.server.RMIFailureHandler
- java.rmi.server.RMISocketFactory
- java.rmi.server.RemoteCall
- java.rmi.server.RemoteObject
- java.rmi.server.RemoteRef
- java.rmi.server.RemoteServer
- java.rmi.server.RemoteStub
- java.rmi.server.ServerCloneException
- java.rmi.server.ServerNotActiveException
- java.rmi.server.ServerRef
- java.rmi.server.Skeleton
- java.rmi.server.SkeletonMismatchException
- java.rmi.server.SkeletonNotFoundException
- java.rmi.server.SocketSecurityException
- java.rmi.server.UID
- java.rmi.server.UnicastRemoteObject
- java.rmi.server.Unreferenced
Exhibit H
Microsoft SDK for Java 2.0 API Modifications Reported by "SignatureTest"
"java" class files version 4.79.2252 dated 9/12/97
| |
total |
awt |
awt.peer |
util (I18N classes) |
lang |
| deleted methods |
4 |
3 |
0 |
0 |
1 |
| added methods |
49 |
6 |
19 |
5 |
19 |
| added fields |
56 |
2 |
0 |
50 |
4 |
Total non-RMI modifications found by signature test |
109 |
11 |
19 |
55 |
24 |
| RMI deleted classes |
48 |
N/A |
N/A |
N/A |
N/A |
RMI deleted methods, constructors, fields |
744 |
N/A |
N/A |
N/A |
N/A |
Total modifications reported by signature test |
901 |
Deleted methods
- java.awt.image.ColorModel -- method public void finalize()
- java.awt.image.DirectColorModel -- method public void finalize()
- java.awt.image.IndexColorModel -- method public void finalize()
- java.io.ByteArrayOutputStream -- method public java.lang.String toString(java.lang.String)
Added Methods - AWT
- java.awt.EventQueue -- method public void _postEvent(java.awt.AWTEvent)
- java.awt.Font -- method public int getNativeData()
- java.awt.SystemColor -- method public int getWin32Index()
- java.awt.image.DirectColorModel -- method public com.ms.awt.peer.DirectColourModelData getToolkitData()
- java.awt.image.IndexColorModel -- method public [I getToolkitData()
- java.awt.image.IndexColorModel -- method public boolean getOpaque()
Added fields - AWT
- java.awt.Font -- field public transient int java.awt.Font.pData
- java.awt.SystemColor -- field public static final java.awt.SystemColor java.awt.SystemColor.appWorkspace
Added methods - AWT peer
java.- awt.peer.ButtonPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CanvasPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.CheckboxPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ChoicePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ContainerPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.DialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FileDialogPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.FramePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LabelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.LightweightPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ListPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.PanelPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollPanePeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.ScrollbarPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextAreaPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextComponentPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.TextFieldPeer -- method public abstract java.awt.Rectangle getBounds()
- java.awt.peer.WindowPeer -- method public abstract java.awt.Rectangle getBounds()
Added fields - International Classes
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AFRIKAANS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ALBANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.AUSTRALIA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BASQUE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BELGIAN_FRENCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BRAZILIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BULGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.BYELORUS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CATALAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CROATIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.CZECH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.DUTCH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ESTONIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.FINNISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_AUSTRIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GERMAN_SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.GREEK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HEBREW
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.HUNGARIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ICELANDIC
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.INDONESIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.IRELAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.JAPANESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.KOREAN_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LATVIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.LITHUANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.MEXICAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NEWZEALAND
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.NORWEGIAN_NYNORSK
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.POLISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.PORTUGESE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.ROMANIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.RUSSIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SERBIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SIMPLIFIED_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SINGAPORE
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVAKIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SLOVENIAN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SOUTH_AFRICA
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SPANISH_MODERN
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWEDISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.SWISS
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.THAI
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TRADITIONAL_CHINESE_VERTICAL
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.TURKISH
- java.util.Locale -- field public static final java.util.Locale java.util.Locale.UKRANIAN
Added methods - International classes
- java.util.Locale -- constructor public java.util.Locale(java.lang.String,java.lang.String,java.lang.String,int,int)
- java.util.Locale -- method public [Ljava.util.Locale; getDefaultLocaleList()
- java.util.Locale -- method public int getCodePage()
- java.util.Locale -- method public int getLCID()
- java.util.Locale -- method public static java.util.Locale getLocaleFromLCID(int)
Added Methods - lang
- java.lang.Class -- method public [Ljava.lang.reflect.Method; getMethods(int)
- java.lang.Class -- method public java.lang.Class getInterface(java.lang.String)
- java.lang.Class -- method public java.lang.reflect.Method getDeclaredMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Class -- method public java.lang.reflect.Method getMethodFromSignature(java.lang.String,java.lang.String)
- java.lang.Runtime -- method public static com.ms.awt.peer.INativeServices getNativeServices()
- java.lang.SecurityManager -- method public void checkFileDialog()
- java.lang.SecurityManager -- method public void checkMultimedia()
- java.lang.SecurityManager -- method public void checkRegistry(int,java.lang.String)
- java.lang.SecurityManager -- method public void checkSystemStreams(int)
- java.lang.VerifyError -- interface interface com.ms.security.auditing.ISecurityAuditInfo
- java.lang.VerifyError -- method public [Ljava.lang.String; getAuditDetails()
- java.lang.VerifyError -- method public int getPC()
- java.lang.VerifyError -- method public int getViolationCode()
- java.lang.VerifyError -- method public java.lang.String getAuditIdentifier()
- java.lang.VerifyError -- method public java.lang.String getClassName()
- java.lang.VerifyError -- method public java.lang.String getMethodName()
- java.lang.VerifyError -- method public java.lang.String getViolationDescription()
- java.lang.reflect.Method -- method public int getParameterCount()
- java.lang.reflect.Method -- method public java.lang.String getDescriptor()
Added Fields - lang
- java.lang.reflect.Field -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Constructor -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Member -- field public static final int java.lang.reflect.Member.PUBLIC_DECLARED
- java.lang.reflect.Method -- field public static final int java.lang.reflect.Member.PUBLIC_DECLAREDAdded protected methods
Deleted Classes
- java.rmi.AccessException
- java.rmi.AlreadyBoundException
- java.rmi.ConnectException
- java.rmi.ConnectIOException
- java.rmi.MarshalException
- java.rmi.Naming
- java.rmi.NoSuchObjectException
- java.rmi.NotBoundException
- java.rmi.RMISecurityException
- java.rmi.RMISecurityManager
- java.rmi.Remote
- java.rmi.RemoteException
- java.rmi.ServerError
- java.rmi.ServerException
- java.rmi.ServerRuntimeException
- java.rmi.StubNotFoundException
- java.rmi.UnexpectedException
- java.rmi.UnknownHostException
- java.rmi.UnmarshalException
- java.rmi.dgc.DGC
- java.rmi.dgc.Lease
- java.rmi.dgc.VMID
- java.rmi.registry.LocateRegistry
- java.rmi.registry.Registry
- java.rmi.registry.RegistryHandler
- java.rmi.server.ExportException
- java.rmi.server.LoaderHandler
- java.rmi.server.LogStream
- java.rmi.server.ObjID
- java.rmi.server.Operation
- java.rmi.server.RMIClassLoader
- java.rmi.server.RMIFailureHandler
- java.rmi.server.RMISocketFactory
- java.rmi.server.RemoteCall
- java.rmi.server.RemoteObject
- java.rmi.server.RemoteRef
- java.rmi.server.RemoteServer
- java.rmi.server.RemoteStub
- java.rmi.server.ServerCloneException
- java.rmi.server.ServerNotActiveException
- java.rmi.server.ServerRef
- java.rmi.server.Skeleton
- java.rmi.server.SkeletonMismatchException
- java.rmi.server.SkeletonNotFoundException
- java.rmi.server.SocketSecurityException
- java.rmi.server.UID
- java.rmi.server.UnicastRemoteObject
- java.rmi.server.Unreferenced