public T proxyNew(ObjectInput in) {
      final Object[] arguments = SerializationProxy.swapExtraArguments(null);
      try {
        final Object[] ctorArgs = makeArgs(in, arguments);
        final Constructor<T> ctor = findBest(ctors, ctorArgs);
        return ctor.newInstance(ctorArgs);
      } catch (InvocationTargetException xinvoke) {
        Throwable xtarget = xinvoke.getTargetException();
        throw ProxyException.convert(xtarget != null ? xtarget : xinvoke);
      } catch (InstantiationException | IllegalAccessException | IllegalArgumentException xany) {
        throw ProxyException.convert(xany);
      } finally {
        SerializationProxy.swapExtraArguments(arguments);
      }
    }
Creates a new instance of the proxified class calling one mandatory ctors(DataInput).
@param in the input
@return the instance
@throws ProxyException if any error occurs
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/properties/SerializationProxy.java