Class serialization help (org.omg.CORBA.MARSHAL: WARNUNG: IOP00810011: Exception... error)
<p>I have the following interface:</p>

<pre><code>public interface Ranged
{
  public Object getRangeStart();
  public Object getRangeEnd();

  public void setRangeStart(Object rangeStart);
  public void setRangeEnd(Object rangeEnd);
}
</code></pre>

<p>and the following implementing class:</p>

<pre><code>public class DateRange implements Ranged, Serializable
{
  private static final long serialVersionUID=SerialVersionUID.getSerialVersionUID();
  public DateRange()
  {

  }

  private Date  dateFrom;
  private Date  dateTo;

  public Object getRangeStart()
  {
    return (Date)dateFrom;
  }

  public Object getRangeEnd()
  {
    return (Date)dateTo;
  }

  public void setRangeStart( Object from )
  {
    this.dateFrom = (Date)from;
  }

  public void setRangeEnd( Object to )
  {
    this.dateTo = (Date)to;
  }
}
</code></pre>

<p>I use the DateRange class in the following way:</p>

<pre><code>...
private DateRange  creationDate;
private Date    rangeStart;
private Date    rangeStop;
...

public DateRange getCreationDate()
{
  SimpleDateFormat sdf_incoming = new SimpleDateFormat("yyyy-MM-dd");
  SimpleDateFormat sdf_outgoing = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

  creationDate = null;

  try
  {
    if (!isDateRange())
    {
      if (!rangeStart.toString().equals(""))
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_0));
        creationDate.setRangeEnd(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_24));
      }
    }
    else
    {
      if (!rangeStart.toString().equals("") &amp;&amp; rangeStop.toString().equals(""))
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_0));
        creationDate.setRangeEnd(sdf_outgoing.parse(MAX_DATE));
      }
      else if (rangeStart.toString().equals("") &amp;&amp; !rangeStop.toString().equals(""))
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(MIN_DATE));
        creationDate.setRangeEnd(sdf_outgoing.parse(sdf_incoming.format(rangeStop) + TIME_24));
      }
      else
      // both set
      {
        creationDate = new DateRange();
        creationDate.setRangeStart(sdf_outgoing.parse(sdf_incoming.format(rangeStart) + TIME_0));
        creationDate.setRangeEnd(sdf_outgoing.parse(sdf_incoming.format(rangeStop) + TIME_24));
      }
    }
  }
  catch (ParseException e)
  {
    e.printStackTrace();
  }

 return creationDate;
}
...
</code></pre>

<p>This happens at the client side and when the creationDate should be serialized and passed to the server side, I get the following error:</p>

<blockquote>
  <p>[exec] 2011-12-06T13:34:00.132+0100|WARNING|glassfish3.1|javax.enterprise.resource.corba.ORBUtil|_ThreadID=17;_ThreadName=Thread-1;|IOP00810011: Exception from readValue on
   ValueHandler in CDRInputStream
       [exec] org.omg.CORBA.MARSHAL: WARNUNG: IOP00810011: Exception from readValue on ValueHandler in CDRInputStream  vmcid: OMG  minor code: 11 completed: Maybe
       [exec]     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
       [exec]     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
       [exec]     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
       [exec]     at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
       [exec]     at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)
       [exec]     at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)
       [exec]     at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.handleFullLogging(WrapperGenerator.java:387)
       [exec]     at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access$400(WrapperGenerator.java:107)
       [exec]     at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator$2.invoke(WrapperGenerator.java:511)
       [exec]     at com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99)
       [exec]     at $Proxy157.valuehandlerReadException(Unknown Source)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1022)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1123)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:531)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2162)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2404)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:308)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:274)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1015)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1123)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:935)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:928)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:918)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputObject.read_abstract_interface(CDRInputObject.java:557)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:391)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:544)
       [exec]     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)
       [exec]     at java.util.ArrayList.readObject(ArrayList.java:593)
       [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       [exec]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       [exec]     at java.lang.reflect.Method.invoke(Method.java:597)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1832)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1214)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:308)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:274)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1015)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1123)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:531)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:2162)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2404)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1224)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:308)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:274)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1015)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1123)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputObject.read_value(CDRInputObject.java:531)
       [exec]     at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl$14.read(DynamicMethodMarshallerImpl.java:384)
       [exec]     at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.readArguments(DynamicMethodMarshallerImpl.java:451)
       [exec]     at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.<em>invoke(ReflectiveTie.java:172)
       [exec]     at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:528)
       [exec]     at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:199)
       [exec]     at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1624)
       [exec]     at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:126)
       [exec]     at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:273)
       [exec]     at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:200)
       [exec]     at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
       [exec]     at com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:227)
       [exec]     at ch.ethz.id.wai.lakshmi.engine.ejb.</em>_LakshmiServerInterfaceBeanRemote_Remote_DynamicStub.submitOrderContext(ch/ethz/id/wai/lakshmi/engine/ejb/__LakshmiServerInter
  faceBeanRemote_Remote_DynamicStub.java)
       [exec]     at ch.ethz.id.wai.lakshmi.engine.ejb._LakshmiServerInterfaceBeanRemote_Wrapper.submitOrderContext(ch/ethz/id/wai/lakshmi/engine/ejb/_LakshmiServerInterfaceBeanRemot
  e_Wrapper.java)
       [exec]     at ch.ethz.id.wai.web.controller.Controller.submitOrder(Controller.java:49)
       [exec]     at ch.ethz.id.wai.doi.DoiListController.submitOrder(DoiListController.java:56)
       [exec]     at ch.ethz.id.wai.web.controller.ListController.selectData(ListController.java:54)
       [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       [exec]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       [exec]     at java.lang.reflect.Method.invoke(Method.java:597)
       [exec]     at com.sun.el.parser.AstValue.invoke(AstValue.java:234)
       [exec]     at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
       [exec]     at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
       [exec]     at com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:131)
       [exec]     at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2508)
       [exec]     at javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
       [exec]     at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2129)
       [exec]     at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2077)
       [exec]     at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:286)
       [exec]     at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:244)
       [exec]     at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
       [exec]     at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
       [exec]     at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
       [exec]     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
       [exec]     at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
       [exec]     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
       [exec]     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
       [exec]     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
       [exec]     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
       [exec]     at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
       [exec]     at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
       [exec]     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
       [exec]     at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
       [exec]     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
       [exec]     at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
       [exec]     at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
       [exec]     at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
       [exec]     at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
       [exec]     at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
       [exec]     at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
       [exec]     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
       [exec]     at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
       [exec]     at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
       [exec]     at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
       [exec]     at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
       [exec]     at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
       [exec]     at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
       [exec]     at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
       [exec]     at java.lang.Thread.run(Thread.java:619)
       [exec] Caused by: java.lang.NullPointerException
       [exec]     at com.sun.corba.ee.impl.orbutil.ClassInfoCache$ClassInfo.(ClassInfoCache.java:156)
       [exec]     at com.sun.corba.ee.impl.orbutil.ClassInfoCache.get(ClassInfoCache.java:281)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1097)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:935)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:928)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:918)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputObject.read_abstract_interface(CDRInputObject.java:557)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.readObjectDelegate(IIOPInputStream.java:391)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.readObjectOverride(IIOPInputStream.java:544)
       [exec]     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:345)
       [exec]     at java.util.HashMap.readObject(HashMap.java:1030)
       [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       [exec]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       [exec]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       [exec]     at java.lang.reflect.Method.invoke(Method.java:597)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.invokeObjectReader(IIOPInputStream.java:1832)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1214)
       [exec]     at com.sun.corba.ee.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:425)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:308)
       [exec]     at com.sun.corba.ee.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:274)
       [exec]     at com.sun.corba.ee.impl.encoding.CDRInputStream_1_0.readRMIIIOPValueType(CDRInputStream_1_0.java:1015)
       [exec]     ... 98 more
       [exec] |#]
       [exec]</p>
</blockquote>

<p>Am I missing something? I'm really lost. DateRange implements Serializable and (java.util)Date should also be serializable.
Let me know if more informations are needed.</p>
