public Object callReadResolve(final Object result){
  if (result == null) {
    return null;
  }
 else {
    final Class<? extends Object> resultType=result.getClass();
    final Method readResolveMethod=getRRMethod(resultType,"readResolve");
    if (readResolveMethod != null) {
      ErrorWritingException ex=null;
      try {
        return readResolveMethod.invoke(result);
      }
 catch (      final IllegalAccessException e) {
        ex=new ObjectAccessException("Cannot access method",e);
      }
catch (      final InvocationTargetException e) {
        ex=new ConversionException("Failed calling method",e.getTargetException());
      }
      ex.add("method",resultType.getName() + ".readResolve()");
      throw ex;
    }
 else {
      return result;
    }
  }
}

public Object callReadResolve ( final Object result ) { if ( result == null ) { return null ; } else { final Class < ? extends Object > resultType = result . getClass ( ) ; final Method readResolveMethod = getRRMethod ( resultType , "readResolve" ) ; if ( readResolveMethod != null ) { ErrorWritingException ex = null ; try { return readResolveMethod . invoke ( result ) ; } catch ( final IllegalAccessException e ) { ex = new ObjectAccessException ( "Cannot access method" , e ) ; } catch ( final InvocationTargetException e ) { ex = new ConversionException ( "Failed calling method" , e . getTargetException ( ) ) ; } ex . add ( "method" , resultType . getName ( ) + ".readResolve()" ) ; throw ex ; } else { return result ; } } }
resolves an object as native serialization does by calling readresolve ( ) , if available .
