Throwable cause = exception.getCause(); if (cause instanceof ObjectStreamException) throw (ObjectStreamException) cause; else if (cause instanceof RuntimeException) throw (RuntimeException) cause; else if (cause instanceof Error) throw (Error) cause;
  private Object processResolution(ObjectStreamClass osc, Object obj, int handle)    throws IOException  {    if (osc != null && obj instanceof Serializable)      {	try	  {	    Method m = osc.readResolveMethod; 	    if(m != null)	    {		obj = m.invoke(obj, new Object[] {});	    }	  }	catch (IllegalAccessException ignore)	  {	  }	catch (InvocationTargetException ignore)	  {	  }      }    if (this.resolveEnabled)      obj = resolveObject(obj);    this.objectLookupTable.put(new Integer(handle),			       new ObjectIdentityWrapper(obj));    return obj;  }