JDK-4996984 : REGRESSION: api/java_applet/Applet/AccessibleApplet/serial/index.html#Input
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 5.0
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2004-02-19
  • Updated: 2004-03-24
  • Resolved: 2004-03-08
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 b42Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description

Name: iaR10016			Date: 02/18/2004


Filed By      : J2SE-SQA [###@###.###
JDK           : JDK1.5.0-b38, JDK1.5.0-b37 (not reproducible using JDK1.4.2-b28)
JCK           : JCK1.5-runtime (b12a)
Platform[s]   : all
switch/Mode   : default
JCK test owner: http://javaweb.eng/jck/usr/owners.jto
Falling test  : api/java_applet/Applet/AccessibleApplet/serial/index.html#Input[serial2002]

JCK1.5-runtime (b12a) api/java_applet/Applet/AccessibleApplet/serial/index.html#Input test fails
using JDK1.5.0-b38 on all platforms with java.io.InvalidClassException because serialVersionUID
for the java.awt.Container$AccessibleAWTContainer class was changed in the latest tiger builds.

Bug 4956570 filed about this failure was closed as a duplicate of the bug 4954608.
Bugs 4954608 and 4972569 were integrated in tiger, however the test still fails.

Please, see bugs 4956570, 4954608, 4972569 Evaluations for more details.

Test source location:
=====================
/java/re/jck/1.5/promoted/beta/b12a/binaries/JCK-runtime-15/tests/api/java_applet/Applet/AccessibleApplet/serial/InputTests.java

jtr file location:
==================
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b38/jck15/linux/suse8.0_gnome_client_concgc_X--UseParNewGC_linux-2/workDir/api/java_applet/Applet/AccessibleApplet/serial/index_Input.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/b38/binaries/linux-i586"
JCK="/java/re/jck/1.5/promoted/beta/b12a/binaries/JCK-runtime-15"

#Alternative paths outside Java Software
#JDK="/net/koori.sfbay/onestop/jdk/1.5.0/promoted/all/b38/binaries/linux-i586"
#JCK="/net/koori.sfbay/onestop/jck/1.5/promoted/beta/b12a/binaries/JCK-runtime-15"

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

Test output:
============
JCK_VERSION=1.5 JCK_BUILD_ID=b12a
java version "1.5.0-beta2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta2-b38)
Java HotSpot(TM) Client VM (build 1.5.0-beta2-b38, 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.Panel$AccessibleAWTPanel; local class incompatible: stream classdesc serialVersionUID = -6409552226660031050, local class serialVersionUID = 2316023700588253458
     at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:522)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
     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.applet.Applet.AccessibleApplet.serial.InputTests.serial2002(InputTests.java:111)
     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:494)
     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.applet.Applet.AccessibleApplet.serial.InputTests.main(InputTests.java:30)
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.Panel$AccessibleAWTPanel; local class incompatible: stream classdesc serialVersionUID = -6409552226660031050, local class serialVersionUID = 2316023700588253458
     at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:522)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
     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.applet.Applet.AccessibleApplet.serial.InputTests.serial2002(InputTests.java:111)
     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:494)
     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.applet.Applet.AccessibleApplet.serial.InputTests.main(InputTests.java:30)
Checking for JDK Version : 1.5
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.Panel$AccessibleAWTPanel; local class incompatible: stream classdesc serialVersionUID = -6409552226660031050, local class serialVersionUID = 2316023700588253458
     at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:522)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543)
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
     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.applet.Applet.AccessibleApplet.serial.InputTests.serial2002(InputTests.java:111)
     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:494)
     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.applet.Applet.AccessibleApplet.serial.InputTests.main(InputTests.java:30)
serial2002 failed.
STATUS:Failed.test cases: 1; all failed; first test case failure: serial2002

Specific machine info:
======================
Hostname: linux-18
OS: Solaris 10 (x86) (CDE)
Hostname: linux-2
OS: Suse Linux 8.2 (GNOME2)

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

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

EVALUATION Name: osR10079 Date: 02/19/2004 We should specify explicitly serialVersionUID for AccessibleAWTPanel and AccessibleApplet. ###@###.### Feb 19, 2004 ====================================================================== Name: osR10079 Date: 02/19/2004 It looks like this is regression for 4884881 (use non-identifier character in synthetic names) And should be fixed by 4982231 (Go back to using '$' instead of '+' in names of synthetic members) The question is should we also explicitly specify serialVersionUID or leave classes as is. ###@###.### Feb 19, 2004 ======================================================================
24-08-2004

SUGGESTED FIX Name: osR10079 Date: 02/19/2004 ###@###.### Feb 19, 2004 *** /tmp/geta7609 Thu Feb 19 09:45:54 2004 --- Applet.java Thu Feb 19 09:40:31 2004 *************** *** 514,519 **** --- 514,521 ---- */ protected class AccessibleApplet extends AccessibleAWTPanel { + private static final long serialVersionUID = 8127374778187708896L; + /** * Get the role of this object. * *** /tmp/geta7614 Thu Feb 19 09:47:12 2004 --- Panel.java Thu Feb 19 09:39:52 2004 *************** *** 99,104 **** --- 99,106 ---- */ protected class AccessibleAWTPanel extends AccessibleAWTContainer { + private static final long serialVersionUID = -6409552226660031050L; + /** * Get the role of this object. * ======================================================================
24-08-2004