Fixes are available
8.5.5.14: WebSphere Application Server V8.5.5 Fix Pack 14
9.0.0.9: WebSphere Application Server traditional V9.0 Fix Pack 9
9.0.0.10: WebSphere Application Server traditional V9.0 Fix Pack 10
8.5.5.15: WebSphere Application Server V8.5.5 Fix Pack 15
9.0.0.11: WebSphere Application Server traditional V9.0 Fix Pack 11
9.0.5.0: WebSphere Application Server traditional Version 9.0.5 Refresh Pack
9.0.5.1: WebSphere Application Server traditional Version 9.0.5 Fix Pack 1
9.0.5.2: WebSphere Application Server traditional Version 9.0.5 Fix Pack 2
8.5.5.17: WebSphere Application Server V8.5.5 Fix Pack 17
9.0.5.3: WebSphere Application Server traditional Version 9.0.5 Fix Pack 3
8.5.5.20: WebSphere Application Server V8.5.5.20
8.5.5.18: WebSphere Application Server V8.5.5 Fix Pack 18
8.5.5.19: WebSphere Application Server V8.5.5 Fix Pack 19
8.5.5.16: WebSphere Application Server V8.5.5 Fix Pack 16
8.5.5.21: WebSphere Application Server V8.5.5.21
APAR status
Closed as program error.
Error description
when switching from Java7 to Java8 in WAS 8.5.5.13, get the following exception when reading properties from the workarea service: [3/14/18 14:07:59:463 CET] 00000183 SystemErr R Caused by: java.io. StreamCorruptedException: invalid type code: 01 [3/14/18 14:07:59:463 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readObject0(ObjectInputStream.java:1745) [3/14/18 14:07:59:463 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readArray(ObjectInputStream.java:2095) [3/14/18 14:07:59:463 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readObject0(ObjectInputStream.java:1711) [3/14/18 14:07:59:463 CET] 00000183 SystemErr R at java.io. ObjectInputStream.defaultReadFields(ObjectInputStream.java:2434) [3/14/18 14:07:59:463 CET] 00000183 SystemErr R at java.io. ObjectInputStream.defaultReadObject(ObjectInputStream.java:695) [3/14/18 14:07:59:463 CET] 00000183 SystemErr R at java.math. BigInteger.readObject(BigInteger.java:1622) [3/14/18 14:07:59:463 CET] 00000183 SystemErr R at sun.reflect. GeneratedMethodAccessor269.invoke(Unknown Source) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at sun.reflect. DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java: 55) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.lang. reflect.Method.invoke(Method.java:508) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1230) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readSerialData(ObjectInputStream.java:2325) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2216 ) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readObject0(ObjectInputStream.java:1717) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.access$900(ObjectInputStream.java:225) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream$GetFieldImpl.readFields(ObjectInputStream.java :2598) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readFields(ObjectInputStream.java:735) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.math. BigDecimal.readObject(BigDecimal.java:8472) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at sun.reflect. GeneratedMethodAccessor268.invoke(Unknown Source) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at sun.reflect. DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java: 55) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.lang. reflect.Method.invoke(Method.java:508) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1230) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readSerialData(ObjectInputStream.java:2325) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2216 ) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readObject0(ObjectInputStream.java:1717) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readObjectImpl(ObjectInputStream.java:537) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java.io. ObjectInputStream.readObject(ObjectInputStream.java:472) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at com.ibm.ws. workarea.WorkAreaHolder$1.run(WorkAreaHolder.java:75) [3/14/18 14:07:59:464 CET] 00000183 SystemErr R at java. security.AccessController.doPrivileged(AccessController.java:694 )
Local fix
this issue can be avoided with "-Dsun.lang.ClassLoader.allowArraySyntax=true"
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM WebSphere Application * * Server using WorkArea * **************************************************************** * PROBLEM DESCRIPTION: When using WorkArea with BigInteger * * , or BigDecimal, and when running with * * JDK SR5/FP5, the following exception * * can occur: * * Caused by: * * java.io.StreamCorruptedException: * * invalid type code: 01 * * at * * java.io.ObjectInputStream.readObject0(O * * bjectInputStream.java:1745) * * at * * java.io.ObjectInputStream.readArray(Obj * * ectInputStream.java:2095) * * at * * java.io.ObjectInputStream.readObject0(O * * bjectInputStream.java:1711) * * at * * java.io.ObjectInputStream.defaultReadFi * * elds(ObjectInputStream.java:2434) * * at * * java.io.ObjectInputStream.defaultReadOb * * ject(ObjectInputStream.java:695) * * at * * java.math.BigInteger.readObject(BigInte * * ger.java:1622) * * at * * sun.reflect.NativeMethodAccessorImpl.in * * voke0(Native * * Method) * * at * * sun.reflect.NativeMethodAccessorImpl.in * * voke(NativeMethodAccessorImpl.java:90) * * at * * sun.reflect.DelegatingMethodAccessorImp * * l.invoke(DelegatingMethodAccessorImpl.j * * ava:55) * * at * * java.lang.reflect.Method.invoke(Method. * * java:508) * * at * * java.io.ObjectStreamClass.invokeReadObj * * ect(ObjectStreamClass.java:1230) * * at * * java.io.ObjectInputStream.readSerialDat * * a(ObjectInputStream.java:2325) * * at * * java.io.ObjectInputStream.readOrdinaryO * * bject(ObjectInputStream.java:2216) * * at * * java.io.ObjectInputStream.readObject0(O * * bjectInputStream.java:1717) * * at * * java.io.ObjectInputStream.access$900(Ob * * jectInputStream.java:225) * * at * * java.io.ObjectInputStream$GetFieldImpl. * * readFields(ObjectInputStream.java:2598) * * at * * java.io.ObjectInputStream.readFields(Ob * * jectInputStream.java:735) * * at * * java.math.BigDecimal.readObject(BigDeci * * mal.java:8472) * * at * * sun.reflect.NativeMethodAccessorImpl.in * * voke0(Native * * Method) * * at * * sun.reflect.NativeMethodAccessorImpl.in * * voke(NativeMethodAccessorImpl.java:90) * * at * * sun.reflect.DelegatingMethodAccessorImp * * l.invoke(DelegatingMethodAccessorImpl.j * * ava:55) * * at * * java.lang.reflect.Method.invoke(Method. * * java:508) * * at * * java.io.ObjectStreamClass.invokeReadObj * * ect(ObjectStreamClass.java:1230) * * at * * java.io.ObjectInputStream.readSerialDat * * a(ObjectInputStream.java:2325) * * at * * java.io.ObjectInputStream.readOrdinaryO * * bject(ObjectInputStream.java:2216) * * at * * java.io.ObjectInputStream.readObject0(O * * bjectInputStream.java:1717) * * at * * java.io.ObjectInputStream.readObjectImp * * l(ObjectInputStream.java:537) * * at * * java.io.ObjectInputStream.readObject(Ob * * jectInputStream.java:472) * * at * * com.ibm.ws.workarea.WorkAreaHolder$1.ru * * n(WorkAreaHolder.java:75) * **************************************************************** * RECOMMENDATION: * **************************************************************** Example: //Also BigDecimal(1) Object value = BigInteger("1"); String type = value.getClass().getSimpleName(); Workarea workArea = new Workarea(type); workArea.begin(); workArea.setProperty(type, value); //An ffdc exception will be thrown from this invocation //the result will be returned as 'null' Object returnedValue = workArea.getProperty(type); Issue: The base issue is with the JDK FP. When WorkArea attempts to load the BigInteger/BigDecimal class, we load a byte[]. The "[" in the class name indicates array syntax. That's not intended to be allowed in a class loading operation, but IBM's Java implementation has tolerated it in the past. That changed in fixpack FP5 - in an attempt to more strictly interpret the specification, that syntax is no longer allowed and results in a ClassNotFoundException. The CNFE is being swallowed by the JDK, but it leads to the exception we are seeing.
Problem conclusion
The fix for this APAR is in WorkArea's classloading implementation. The fix for this APAR is currently targeted for inclusion in Service Level (Fix Pack) 9.0.0.9 and 8.5.5.14. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PI96604
Reported component name
WEBSPHERE APP S
Reported component ID
5724J0800
Reported release
850
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-04-11
Closed date
2018-08-16
Last modified date
2018-08-16
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WEBSPHERE APP S
Fixed component ID
5724J0800
Applicable component levels
R850 PSY
UP
R900 PSY
UP
Document Information
Modified date:
28 April 2022