Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 4728756
Votes 0
Synopsis CopyObject throws Marshalling exception for org.jdom.Document object
Category idl:orb
Reported Against j2ee1.4-ea1
Release Fixed 1.4.1(1.4.1_03)
State 11-Closed, Unverified, bug
Priority: 2-High
Related Bugs 4724983
Submit Date 08-AUG-2002
Description
*******************************************************************************
 xxxxx@xxxxx  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)
Work Around
N/A
Evaluation
I could reproduce the problem. Currently investigating the cause of the problem, which is in our native code.


 xxxxx@xxxxx  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.

 xxxxx@xxxxx  2002-09-17
------
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang