JDK-5010859 : REGRESSION: 25 JCK1.5-runtime api/java_awt tests fail
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 5.0
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2004-03-10
  • Updated: 2004-04-09
  • Resolved: 2004-03-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
5.0 b45Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
sorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:495)
     at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:399)
     at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
     at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:127)
     at javasoft.sqe.tests.api.java.awt.Button.AccessibleAWTButton.serial.InputTests.main(InputTests.java:33)
serial2002 failed.
STATUS:Failed.test cases: 1; all failed; first test case failure: serial2002

Specific machine info:
======================
Hostname: linux-22
OS: RedHat Linux 9.0 (GNOME)
Hostname: linux-3
OS: Solaris 10 (x86) (CDE)
Hostname: linux-4
OS: SuSE SLES 8
Hostname: linux-6
OS: Solaris 9 (x86) (O/W)
Hostname: linux-8
OS: Solaris 10 (sparc) (GNOME)

======================================================================


Name: iaR10016			Date: 03/10/2004


Filed By       : J2SE-SQA [###@###.###
JDK            : JDK1.5.0-b41
                  (the tests pass using JCK1.4a, JDK1.4.2-b28)
JCK            : JCK1.5-runtime (b13, b14)
Platform[s]    : all
switch/Mode    : default
JCK test owner : http://javaweb.sfbay/jcce/tcks/jck/1.5/project/data_reports/owners.jto
Falling test[s]:
         api/java_awt/Dialog/AccessibleAWTDialog/serial/index.html#Input [serial2002]
         api/java_awt/Button/AccessibleAWTButton/serial/index.html#Input [serial2002]
         api/java_awt/Canvas/AccessibleAWTCanvas/serial/index.html#Input [serial2002]
         api/java_awt/Checkbox/AccessibleAWTCheckbox/serial/index.html#Input [serial2002]
         api/java_awt/CheckboxMenuItem/AccessibleAWTCheckboxMenuItem/serial/index.html#Input [serial2002]
         api/java_awt/Choice/AccessibleAWTChoice/serial/index.html#Input [serial2002]
         api/java_awt/Component/AccessibleAWTComponent/serial/index.html#Input [serial2002]
         api/java_awt/Label/AccessibleAWTLabel/serial/index.html#Input [serial2002]
         api/java_awt/List/AccessibleAWTList/AccessibleAWTListChild/serial/index.html#Input [serial2002]
         api/java_awt/List/AccessibleAWTList/serial/index.html#Input [serial2002]
         api/java_awt/Menu/AccessibleAWTMenu/serial/index.html#Input [serial2002]
         api/java_awt/MenuBar/AccessibleAWTMenuBar/serial/index.html#Input [serial2002]
         api/java_awt/MenuComponent/AccessibleAWTMenuComponent/serial/index.html#Input [serial2002]
         api/java_awt/MenuItem/AccessibleAWTMenuItem/serial/index.html#Input [serial2002]
         api/java_awt/Panel/AccessibleAWTPanel/serial/index.html#Input [serial2002]
         api/java_awt/PopupMenu/AccessibleAWTPopupMenu/serial/index.html#Input [serial2002]
         api/java_awt/ScrollPane/AccessibleAWTScrollPane/serial/index.html#Input [serial2002]
         api/java_awt/Scrollbar/AccessibleAWTScrollBar/serial/index.html#Input [serial2002]
         api/java_awt/TextArea/AccessibleAWTTextArea/serial/index.html#Input [serial2002]
         api/java_awt/TextComponent/AccessibleAWTTextComponent/serial/index.html#Input [serial2002]
         api/java_awt/TextField/AccessibleAWTTextField/serial/index.html#Input [serial2002]
         api/java_awt/Window/AccessibleAWTWindow/serial/index.html#Input [serial2002]
         api/java_awt/serialization/descriptions.html#Component [testRead]
         api/java_awt/serialization/descriptions.html#Container [testRead]
         api/java_awt/serialization/descriptions.html#ScrollPane [testRead]

25 JCK1.5-runtime (b14) serial tests fail with java.io.InvalidClassException using JDK1.5.0-b41 because
SerialVersionUID for some awt classes was changed in the latest tiger builds.

Most of these tests are in the latest JCK1.5 known failure list and failed in previous tiger builds
because of the bug 4982231 integrated in tiger.

Please, see also bug 4972569.

Test source location:
=====================
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Dialog/AccessibleAWTDialog/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Button/AccessibleAWTButton/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Canvas/AccessibleAWTCanvas/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Checkbox/AccessibleAWTCheckbox/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/CheckboxMenuItem/AccessibleAWTCheckboxMenuItem/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Choice/AccessibleAWTChoice/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Component/AccessibleAWTComponent/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Label/AccessibleAWTLabel/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/List/AccessibleAWTList/AccessibleAWTListChild/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/List/AccessibleAWTList/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Menu/AccessibleAWTMenu/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/MenuBar/AccessibleAWTMenuBar/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/MenuComponent/AccessibleAWTMenuComponent/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/MenuItem/AccessibleAWTMenuItem/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Panel/AccessibleAWTPanel/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/PopupMenu/AccessibleAWTPopupMenu/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/ScrollPane/AccessibleAWTScrollPane/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Scrollbar/AccessibleAWTScrollBar/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/TextArea/AccessibleAWTTextArea/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/TextComponent/AccessibleAWTTextComponent/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/TextField/AccessibleAWTTextField/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/Window/AccessibleAWTWindow/serial/InputTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/serialization/ComponentTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/serialization/ContainerTests.java
/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15/tests/api/java_awt/serialization/ScrollPaneTests.java

jtr file location:
==================
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Dialog/AccessibleAWTDialog/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Button/AccessibleAWTButton/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Canvas/AccessibleAWTCanvas/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Checkbox/AccessibleAWTCheckbox/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/CheckboxMenuItem/AccessibleAWTCheckboxMenuItem/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Choice/AccessibleAWTChoice/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Component/AccessibleAWTComponent/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Label/AccessibleAWTLabel/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/List/AccessibleAWTList/AccessibleAWTListChild/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/List/AccessibleAWTList/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Menu/AccessibleAWTMenu/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/MenuBar/AccessibleAWTMenuBar/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/MenuComponent/AccessibleAWTMenuComponent/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/MenuItem/AccessibleAWTMenuItem/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Panel/AccessibleAWTPanel/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/PopupMenu/AccessibleAWTPopupMenu/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/ScrollPane/AccessibleAWTScrollPane/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Scrollbar/AccessibleAWTScrollBar/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/TextArea/AccessibleAWTTextArea/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/TextComponent/AccessibleAWTTextComponent/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/TextField/AccessibleAWTTextField/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/Window/AccessibleAWTWindow/serial/index_Input.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/serialization/descriptions_Component.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/serialization/descriptions_Container.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b41/jck15/sparc/Solaris_10_sparc_GNOME__linux-8/workDir/api/java_awt/serialization/descriptions_ScrollPane.jtr

How to reproduce:
=================
Run the following script (you may need to change its variables)

--- script start ---
#!/bin/sh

#Paths in Java Software:
JDK="/java/re/jdk/1.5.0/promoted/all/b41/binaries/solaris-sparc"
JCK="/java/re/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15"

#Alternative paths outside Java Software
#JDK="/net/koori.sfbay/onestop/jdk/1.5.0/promoted/all/b41/binaries/solaris-sparc"
#JCK="/net/koori.sfbay/onestop/jck/1.5/promoted/beta/b14/binaries/JCK-runtime-15"

#Alternative paths for the NSK site:
#JCK="/net/linux-15/export/home/java/jck1.5/JCK-runtime-15"
#JDK="/net/linux-15/export/home/java/jdk1.5.0/sparc"

export CLASSPATH="$JCK/classes:$JCK/lib/javatest.jar"
TEST="javasoft.sqe.tests.api.java.awt.Button.AccessibleAWTButton.serial.InputTests -TestCaseID serial2002"
echo `cat $JCK/build.txt | grep JCK_VERSION` `cat $JCK/build.txt | grep JCK_BUILD`
$JDK/bin/java -showversion $TEST
--- script end ---

Test output:
============
JCK_VERSION=1.5 JCK_BUILD_ID=b14
java version "1.5.0-beta2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta2-b41)
Java HotSpot(TM) Client VM (build 1.5.0-beta2-b41, mixed mode)

serial2002: Failed. FAILED
Checking for JDK Version : 1.3
Creating StreamObject from spec
Setting the value of serial fields
Converting the StreamObject to Object
I/O error. Got exception:
java.io.InvalidClassException: java.awt.Button$AccessibleAWTButton; local class incompatible: stream classdesc serialVersionUID = -5932203980244017102, local class serialVersionUID = 2056422606833450967
     at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1690)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1296)
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
     at javasoft.sqe.serial.util.Convert.readObjectFromByteArray(Convert.java:120)
     at javasoft.sqe.serial.util.Convert.streamObjectToObject(Convert.java:53)
     at javasoft.sqe.tests.api.java.awt.Button.AccessibleAWTButton.serial.InputTests.serial2002(InputTests.java:109)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:495)
     at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:399)
     at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
     at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:127)
     at javasoft.sqe.tests.api.java.awt.Button.AccessibleAWTButton.serial.InputTests.main(InputTests.java:33)
Checking for JDK Version : 1.4
Creating StreamObject from spec
Setting the value of serial fields
Converting the StreamObject to Object
I/O error. Got exception:
java.io.InvalidClassException: java.awt.Button$AccessibleAWTButton; local class incompatible: stream classdesc serialVersionUID = -5932203980244017102, local class serialVersionUID = 2056422606833450967
...
I/O error. Got exception:
java.io.InvalidClassException: java.awt.Button$AccessibleAWTButton; local class incompatible: stream classdesc serialVersionUID = -5932203980244017102, local class serialVersionUID = 2056422606833450967
     at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1690)
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1296)
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
     at javasoft.sqe.serial.util.Convert.readObjectFromByteArray(Convert.java:120)
     at javasoft.sqe.serial.util.Convert.streamObjectToObject(Convert.java:53)
     at javasoft.sqe.tests.api.java.awt.Button.AccessibleAWTButton.serial.InputTests.serial2002(InputTests.java:109)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcces

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta2 FIXED IN: tiger-beta2 INTEGRATED IN: tiger-b45 tiger-beta2 VERIFIED IN: tiger-beta2
24-08-2004

EVALUATION Name: osR10079 Date: 03/11/2004 I've verified that the problem can be fixed by explicit specifying serial version UIDs for several AccessibleAWTXXX classes. However before such fix we would like to figure out the root cause of the problem. I'm pretty sure we didn't change anything that could cause serial version UID change in such classes as AccessibleAWTButton, for example. I tried to write a minimized test that would reproduce the problem, but failed to do it. It might affect some real customer applications. So, we reassign the bug to the Serialization team for further investigation. If it appears so that the cause isn't serious (or something we *did* in AWT), then we'll fix it by writing explicit serial version UIDs. ###@###.### Mar 11, 2004 ====================================================================== Most of the serialVersionUID changes are due to a change in the access modifier that 1.5 javac generates for 'this$0' field. This is observable by comparing the 1.4.2 and 1.5 output of 'javap -private' for a given class. For example: Diffs between sorted 'javap -private' output for java.awt.Dialog.AccessibleAWTDialog: 2c2 < private final java.awt.Dialog this$0; --- > final java.awt.Dialog this$0; The following other classes also exhibit (only) the above change: java.awt.Button.AccessibleAWTButton java.awt.Canvas.AccessibleAWTCanvas java.awt.Checkbox.AccessibleAWTCheckbox java.awt.CheckboxMenuItem.AccessibleAWTCheckboxMenuItem java.awt.Choice.AccessibleAWTChoice java.awt.Label.AccessibleAWTLabel java.awt.Menu.AccessibleAWTMenu java.awt.MenuBar.AccessibleAWTMenuBar java.awt.MenuComponent.AccessibleAWTMenuComponent java.awt.MenuItem.AccessibleAWTMenuItem java.awt.Panel.AccessibleAWTPanel java.awt.PopupMenu.AccessibleAWTPopupMenu java.awt.ScrollPane.AccessibleAWTScrollPane java.awt.Scrollbar.AccessibleAWTScrollBar java.awt.TextArea.AccessibleAWTTextArea java.awt.TextField.AccessibleAWTTextField java.awt.Window.AccessibleAWTWindow There are a few classes, however, in which additional changes are visible: Diffs between sorted 'javap -private' output for java.awt.Component.AccessibleAWTComponent: 2c2,3 < private final java.awt.Component this$0; --- > final java.awt.Component this$0; > private static final long serialVersionUID; 45d45 < static java.awt.Component access$000(java.awt.Component$AccessibleAWTComponent); The above class defines an additional synthetic accessor method; however, it shouldn't matter since it now declares an explicit serialVersionUID. This test should no longer be failing. Diffs between sorted 'javap -private' output for java.awt.List.AccessibleAWTList: 2c2 < private final java.awt.List this$0; --- > final java.awt.List this$0; 19d18 < static java.awt.List access$000(java.awt.List$AccessibleAWTList); The above class defines an additional synthetic accessor method. Diffs between sorted 'javap -private' output for java.awt.TextComponent.AccessibleAWTTextComponent: 2c2,5 < private final java.awt.TextComponent this$0; --- > final java.awt.TextComponent this$0; > private int findWordLimit(int, java.text.BreakIterator, boolean, java.lang.String); > private static final boolean NEXT; > private static final boolean PREVIOUS; 10,12c13,15 < public java.lang.String getAfterIndex(int,int); < public java.lang.String getAtIndex(int,int); < public java.lang.String getBeforeIndex(int,int); --- > public java.lang.String getAfterIndex(int, int); > public java.lang.String getAtIndex(int, int); > public java.lang.String getBeforeIndex(int, int); The addition of the private method and private static fields to the above class should not affect serialVersionUID; however, the new public methods will. All of the serialVersionUID incompatibilities listed above should be corrected by declaring an explicit serialVersionUID equal to the default serialVersionUID of the class in 1.4.x. The synthetic member changes enumerated above do not represent a compiler bug--javac is within its limits to implement nested classes differently from release to release. Even if javac reverted to defining 'this$0' as private, other compiler changes would be likely to affect default serialVersionUID values in the future. ###@###.### 2004-03-11
11-03-2004