views:

50

answers:

1

I have a Java Web Start application calling remote Java EE 5 EJBs to load in data from a database. When the data is returned from the EJB to the client, I get the following exception. Looking it up online, it seems that everyone gets this exception and everyone has a different solution for it.

  • All of my entities (abstract or not) implement Serializable and have serialVersionUIDs.
  • The client and server are running the exact same JVM, 1.6.0_20
  • I am running GlassFish v2.1.1 with EclipseLink as the JPA provider.
  • Some of my entities use enums, but 1.6.0_20 doesn't have the enum serialization bug.
  • I initialized all lazy-loaded relationships server-side before passing them off to the client.

This person seems to think that this problem could be caused by having bi-directional @OneToMany/@ManyToOne relationships from an entity to itself, but I've had those in earlier versions of this program without a problem.

This is from the Java Web Start console:

Jul 14, 2010 1:59:23 PM com.myCompany.mis.science.ScienceApp lookupJndi
INFO: Connecting to CORBA Host: localhost
Hello 0
Jul 14, 2010 1:59:36 PM com.sun.corba.ee.impl.encoding.CDRInputStream_1_0 readRMIIIOPValueType
WARNING: "IOP00810211: (MARSHAL) Exception from readValue on ValueHandler in CDRInputStream<<Context:ReaderWriter[value(com.myCompany.mis.science.schedule.jpa.Schedule)]:com.myCompany.mis.science.schedule.jpa.Schedule.experimentBlockList,org.eclipse.persistence.indirection.IndirectList.delegate,java.util.Vector.elementData,[Ljava.lang.Object;<464>[0],com.myCompany.mis.science.schedule.jpa.ExperimentBlock.experiment,com.myCompany.mis.science.experiment.jpa.Experiment.reportList,org.eclipse.persistence.indirection.IndirectList.valueHolder,org.eclipse.persistence.internal.indirection.UnitOfWorkQueryValueHolder.value,org.eclipse.persistence.indirection.IndirectList.valueHolder>>"
org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe
 at com.sun.corba.ee.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:8516)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:973)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:896)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:466)
 at com.sun.corba.ee.impl.corba.TCUtility.unmarshalIn(TCUtility.java:296)
 at com.sun.corba.ee.impl.corba.AnyImpl.read_value(AnyImpl.java:610)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:748)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:406)
 at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.readAny(Util.java:504)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1937)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:896)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:466)
 at com.sun.corba.ee.impl.corba.TCUtility.unmarshalIn(TCUtility.java:296)
 at com.sun.corba.ee.impl.corba.AnyImpl.read_value(AnyImpl.java:610)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:748)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:406)
 at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.readAny(Util.java:504)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.read_Array(ValueHandlerImpl.java:695)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:361)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$14.read(DynamicMethodMarshallerImpl.java:382)
 at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readResult(DynamicMethodMarshallerImpl.java:483)
 at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:195)
 at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
 at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
 at com.myCompany.mis.science.schedule.ejb.manager.__ScheduleManagerRemote_Remote_DynamicStub.getSchedule(com/myCompany/mis/science/schedule/ejb/manager/__ScheduleManagerRemote_Remote_DynamicStub.java)
 at com.myCompany.mis.science.schedule.ejb.manager._ScheduleManagerRemote_Wrapper.getSchedule(com/myCompany/mis/science/schedule/ejb/manager/_ScheduleManagerRemote_Wrapper.java)
 at com.myCompany.mis.science.schedule.editor.model.ScheduleModel.loadContent(ScheduleModel.java:375)

Trace message truncated for length over 10K
Jul 14, 2010 1:59:36 PM com.myCompany.mis.science.ScienceApp$1$1 uncaughtException
SEVERE: null
javax.ejb.EJBException: nested exception is: java.rmi.MarshalException: CORBA MARSHAL 1398079699 Maybe; nested exception is: 
 org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe
java.rmi.MarshalException: CORBA MARSHAL 1398079699 Maybe; nested exception is: 
 org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe
 at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:279)
 at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
 at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
 at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
 at com.myCompany.mis.science.schedule.ejb.manager.__ScheduleManagerRemote_Remote_DynamicStub.getSchedule(com/myCompany/mis/science/schedule/ejb/manager/__ScheduleManagerRemote_Remote_DynamicStub.java)
 at com.myCompany.mis.science.schedule.ejb.manager._ScheduleManagerRemote_Wrapper.getSchedule(com/myCompany/mis/science/schedule/ejb/manager/_ScheduleManagerRemote_Wrapper.java)
 at com.myCompany.mis.science.schedule.editor.model.ScheduleModel.loadContent(ScheduleModel.java:375)
 at com.myCompany.mis.science.schedule.editor.model.ScheduleModel.load(ScheduleModel.java:354)
 at com.myCompany.mis.science.schedule.editor.view.table.ScheduleTable.load(ScheduleTable.java:284)
 at com.myCompany.mis.science.schedule.editor.control.Actions$3.actionPerformed(Actions.java:303)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
 at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
 at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
 at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
 at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
 at java.awt.Component.processMouseEvent(Component.java:6263)
 at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
 at java.awt.Component.processEvent(Component.java:6028)
 at java.awt.Container.processEvent(Container.java:2041)
 at java.awt.Component.dispatchEventImpl(Component.java:4630)
 at java.awt.Container.dispatchEventImpl(Container.java:2099)
 at java.awt.Component.dispatchEvent(Component.java:4460)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
 at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
 at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
 at java.awt.Container.dispatchEventImpl(Container.java:2085)
 at java.awt.Window.dispatchEventImpl(Window.java:2478)
 at java.awt.Component.dispatchEvent(Component.java:4460)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 211 completed: Maybe
 at com.sun.corba.ee.impl.logging.ORBUtilSystemException.valuehandlerReadException(ORBUtilSystemException.java:8516)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:973)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:896)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:466)
 at com.sun.corba.ee.impl.corba.TCUtility.unmarshalIn(TCUtility.java:296)
 at com.sun.corba.ee.impl.corba.AnyImpl.read_value(AnyImpl.java:610)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:748)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:406)
 at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.readAny(Util.java:504)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1937)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:896)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:466)
 at com.sun.corba.ee.impl.corba.TCUtility.unmarshalIn(TCUtility.java:296)
 at com.sun.corba.ee.impl.corba.AnyImpl.read_value(AnyImpl.java:610)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:748)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:406)
 at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.readAny(Util.java:504)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.read_Array(ValueHandlerImpl.java:695)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:361)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:475)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2009)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2240)
 at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
 at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:427)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:364)
 at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:330)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:966)
 at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1052)
 at com.sun.corba.ee.impl.encoding.CDRInputStream.read_val
Trace message truncated for length over 10K
A: 

Caveat: if you search the web, you'll see that this error message appears for several different problems (see the question for solutions I've tried that have failed), so this solution is not universal.

In this particular case, this appears to be caused by a regression introduced in EclipseLink version 1.1.2 and still present in versions 1.1.3, 1.2.0, and (skipping several versions) the latest one, 2.1.0. Reverting to EclipseLink 1.1.1 got rid of this error.

It only appeared in the (remote) Java Web Start client application -- the (local) web application (using the same entities) didn't encounter this problem. I'm still not sure exactly what in the program set off the bug.

Nick