code: protected Object getArraySurrogate(final Method method,
                                         final Object[] args)
                                         throws java.lang.Throwable {
  
          Object array = method.invoke(this.delegate, args);
          WrapperInvocationHandler handler = new WrapperInvocationHandler(array,
              this);
  
          return handler.surrogate;
      }
docs: Surrogate for any method of the delegate that returns an
  instance of <tt>Array</tt>. <p>
  
  @param method returning an <tt>Array</tt>
  @param args to the method
  @throws java.lang.Throwable the exception, if any, thrown by invoking
  the given method with the given arguments upon the delegate
  @return surrogate for the underlying Array object