JDK-4906639 : REGRESSION: JCK1.5-runtime api/java_awt/Color/ICC_ColorSpace/serial/index.html#C
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.io:serialization
  • Affected Version: 5.0
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic,windows_2000
  • CPU: generic,x86
  • Submitted: 2003-08-14
  • Updated: 2003-08-20
  • Resolved: 2003-08-20
Related Reports
Duplicate :  
Description

Name: mmR10223			Date: 08/14/2003


Filed By       : J2SE-SQA [###@###.###
JDK            : JDK1.5.0-b14, JDK1.5.0-b13
JCK            : JCK1.5-runtime
Platform[s]    : all
switch/Mode    : default
JCK test owner : http://javaweb.eng/jck/usr/owners.jto
Falling test[s]: api/java_awt/Color/ICC_ColorSpace/serial/index.html#Constructor [serial2001, result]

This test passes using JDK1.5.0-b12, JDK1.4.2-b28 on all platforms.

Test source location:
=====================
/java/re/jck/1.5/promoted/latest/binaries/JCK-runtime-5/tests/api/java_awt/Color/ICC_ColorSpace/serial/ConstructorTests.java

jtr file location:
==================
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b14/jck15/win32/win2000_plugin_ie5.5linux-2/workDir/api/java_awt/Color/ICC_ColorSpace/serial/index_Constructor.jtr

How to reproduce:
=================
Run the following script (you may need to change its variables)
 
--- script start ---
#!/bin/bash

JCK="h:/java/jck1.5/JCK-runtime-15"
JDK="h:/java/jdk1.5.0/win32"
CLASSPATH="$JCK/classes;$JCK/lib/javatest.jar"
 
$JDK/bin/java $switches -cp $CLASSPATH javasoft.sqe.tests.api.java.awt.Color.ICC_ColorSpace.serial.ConstructorTests -TestCaseID serial2001

--- script end ---

Test output:
============
java.lang.IllegalArgumentException: Invalid field: java.awt.color.ICC_Profile thisProfile
	at javasoft.sqe.serial.StreamObject.getObjectField(StreamObject.java:556)
	at javasoft.sqe.tests.api.java.awt.Color.ICC_ColorSpace.serial.ConstructorTests.serial2001(ConstructorTests.java:94)
	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:324)
	at javasoft.sqe.javatest.lib.MultiTest.invokeTestCase(MultiTest.java:399)
	at javasoft.sqe.javatest.lib.MultiTest.run(MultiTest.java:195)
	at com.sun.jck.lib.ExecJCKTestSameJVMCmd$Version2Test.execute(ExecJCKTestSameJVMCmd.java:372)
	at com.sun.jck.lib.ExecJCKTestSameJVMCmd$StandardTest.run(ExecJCKTestSameJVMCmd.java:317)
	at com.sun.jck.lib.ExecJCKTestSameJVMCmd.execute(ExecJCKTestSameJVMCmd.java:194)
	at com.sun.jck.lib.ExecJCKTestSameJVMCmd.run(ExecJCKTestSameJVMCmd.java:125)
	at com.sun.javatest.agent.Agent$Task.executeCommand(Agent.java:818)
	at com.sun.javatest.agent.Agent$Task.execute(Agent.java:749)
	at com.sun.javatest.agent.Agent$Task.handleRequest(Agent.java:610)
	at com.sun.javatest.agent.Agent.handleRequestsUntilClosed(Agent.java:379)
	at com.sun.javatest.agent.Agent.access$000(Agent.java:43)
	at com.sun.javatest.agent.Agent$1.run(Agent.java:255)
	at java.lang.Thread.run(Thread.java:549)
serial2001: Failed. Test case throws exception: java.lang.IllegalArgumentException: Invalid field: java.awt.color.ICC_Profile thisProfile
result: Failed. test cases: 1; all failed; first test case failure: serial2001

Specific machine info:
======================
Hostname: linux-2
OS: Windows 2000 Pro
Hostname: novo48
OS: Solaris 9 (sparc) (CDE)
Hostname: linux-24
OS: RedHat Linux


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

Comments
EVALUATION java/awt/color belongs to 2D. ###@###.### 2003-08-14 At first glance, it appears that we need to define a serialVersionUID for java.awt.color.ICC_Profile, since it evolved in 1.5 and does not already have a serialVersionUID defined. ###@###.### 2003-08-15 At second glance, it appears that this is a VM issue, introduced in the b13 Hotspot promotion. 2D integrated on the same day, but did not touch any classes in java.awt.color in that integration. (There were some constants added to ICC_Profile in b15, but that is obviously unrelated since this failure started cropping up in b13.) The JCK testcase here is failing in a reflection situation, and I believe there were some reflection changes made in the VM in b13 to support the new language features. In order to determine that this is a VM problem, I took the solaris-sparc binaries from RE's promoted b12 build and ran the testcase, and it passed. Then I dropped in the b13 client libjvm.so into that b12 build, and the test failed. Therefore I'm confident that this is a VM issue, not a 2D problem. Transferring to the VM team for futher evaluation. [The evaluation above about how ICC_Profile should define serialVersionUID is still valid. I filed a new bug 4909781 to address this issue separately.] ###@###.### 2003-08-20 This is probably caused by the addition of the ACC_SYNTHETIC flag to the access flags for classes, fields and methods. There are other test bugs that have been filed in relation to this change. One proposal under consideration is to change serialization to ignore this new flag, but there will be enough other changes in how javac emits synthetic members in 1.5 that more than just this will break. ###@###.### 2003-08-20 This does indeed appear to be due to ACC_SYNTHETIC. A fix for the ACC_SYNTHETIC serialVersionUID issue (bug ID 4897937) was integrated this past Saturday, and should show up in build B16. I've verified that the test completes successfully when run against a workspace with the fix (though ICC_Profile should still declare a serialVersionUID explicitly, as a precaution against future serialVersionUID fluctuations). Closing as a duplicate of 4897937. ###@###.### 2003-08-20 Note that the default serialVersionUID for ICC_Profile has changed yet again, for reasons detailed in the comments section (addition of public static fields). This is unrelated to the ACC_SYNTHETIC issue, and should be addressed by declaring an explicit serialVersionUID for ICC_Profile, as is documented by bug 4909781. ###@###.### 2003-08-29
29-08-2003