United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-4728756 CopyObject throws Marshalling exception for org.jdom.Document object
JDK-4728756 : CopyObject throws Marshalling exception for org.jdom.Document object

Details
Type:
Bug
Submit Date:
2002-08-08
Status:
Closed
Updated Date:
2003-03-04
Project Name:
JDK
Resolved Date:
2004-12-10
Component:
other-libs
OS:
generic
Sub-Component:
corba:orb
CPU:
generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
j2ee1.4-ea1
Fixed Versions:
1.4.1 (03)

Related Reports
Backport:

Sub Tasks

Description
*******************************************************************************
###@###.### 2002-12-10

Fix verified OK

With build - j2sdk-1_4_2-beta-bin-b09-solaris-sparcv9-04_dec_2002
With test - tests/interoperability/serialization

*******************************************************************************

CopyObject throws Marshalling exception for org.jdom.Document object. A simple
java test program is attached for this (javatestcase.tar.gz)

The same error is also seen if an ear if deployed on the J2EE RI server. The
relvant jars and ear file is also attached (testearfile.tar.gz)

    Steps to run the application:-
    0. Add jdom.jar to the classpath
    1.  Modify the lookup.jsp in the ear to reflect the correct
         location of the document serialized file (xml.obj).
    2.  Deploy the this modified ear.
    3.  Access the app from http://<host>:<port>/war1/lookup

This problem is being faced by an ISV using S1AS application server that uses the RI ORB code. This is a show stopper bug for the ISV to give a demo at the sales conference. There is a separate bug filed for this against S1AS (4724983)

The stack trace for this is as under from the J2EE RI server:
(Standalone java program also throws similar exception)

Exception in thread "HttpProcessor[8000][4]" org.omg.CORBA.MARSHAL: Unable to read value from
underlying bridge : Serializable readObject method failed internally  vmcid: SUN  minor code: 211
completed: Maybe
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:947)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:853)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:845)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream.read_abstract_interface(CDRInputStream.java:312)
        at
com.sun.corba.se.internal.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:228)
        at
com.sun.corba.se.internal.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:381)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:316)
        at java.util.ArrayList.readObject(ArrayList.java:548)
        at com.sun.corba.se.internal.io.IIOPInputStream.readObject(Native Method)
        at
com.sun.corba.se.internal.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1298)
        at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:908)
        at
com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
        at
com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
        at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1078)
        at com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:296)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1571)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1784)
        at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:913)
        at
com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
        at
com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
        at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1078)
        at com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:296)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1571)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1784)
        at
com.sun.corba.se.internal.io.IIOPInputStream.defaultReadObjectDelegate(IIOPInputStream.java:436)
        at
com.sun.corba.se.internal.io.InputStreamHook.defaultReadObject(InputStreamHook.java:163)
        at org.jdom.Element.readObject(Element.java:1699)
        at com.sun.corba.se.internal.io.IIOPInputStream.readObject(Native Method)
        at
com.sun.corba.se.internal.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1298)
        at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:908)
        at
com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
        at
com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
        at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:942)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:853)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:845)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream.read_abstract_interface(CDRInputStream.java:312)
        at
com.sun.corba.se.internal.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:228)
        at
com.sun.corba.se.internal.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:381)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:316)
        at java.util.ArrayList.readObject(ArrayList.java:548)
        at com.sun.corba.se.internal.io.IIOPInputStream.readObject(Native Method)
        at
com.sun.corba.se.internal.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1298)
        at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:908)
        at
com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
        at
com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
        at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1078)
        at com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:296)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1571)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1784)
        at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:913)
        at
com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
        at
com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
        at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1078)
        at com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:296)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1571)
        at
com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1784)
        at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:913)
        at
com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:261)
        at
com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:247)
        at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:209)
        at
com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:942)
        at com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:292)
        at com.sun.corba.ee.internal.javax.rmi.CORBA.Util.copyObjects(Util.java:456)
        at javax.rmi.CORBA.Util.copyObjects(Util.java:296)
        at org.omg.stub.com.sun.ejbtest.ejb._EjbTest_Stub.execute(Unknown Source)
        at org.apache.jsp.lookup$jsp._jspService(lookup$jsp.java:79)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:197)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
        at java.security.AccessController.doPrivileged(Native Method)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

                                    

Comments
EVALUATION

I could reproduce the problem. Currently investigating the cause of the problem, which is in our native code.


###@###.### 2002-08-08

----

The fix is due to Zero Length strings, I have fixed the problem in rip-int and
also was tested by our SQE and SUN ONE Appserver customers.

Should go to J2SE 1.4.1 patch for RI to work correctly.

###@###.### 2002-09-17
------
                                     
2002-09-17
SUGGESTED FIX


###@###.### 2003-01-31
Files which will be changed for this bug
src/share/classes/com/sun/corba/se/internal/iiop/CDRInputStream_1_0.java
src/share/classes/com/sun/corba/se/internal/iiop/CDRInputStream_1_2.java
src/share/classes/com/sun/corba/se/internal/orbutil/CacheTable.java
src/share/classes/com/sun/corba/se/internal/orbutil/MinorCodes.java
                                     
2004-06-11
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
1.4.1_03
mantis

FIXED IN:
1.4.1_03
mantis

INTEGRATED IN:
1.4.1_03
mantis
mantis-b06

VERIFIED IN:
mantis-beta


                                     
2004-06-14



Hardware and Software, Engineered to Work Together