code: protected Object getResultSetSurrogate(final Method method,
                                             final Object[] args)
                                             throws Throwable {
  
          Object rs = method.invoke(this.delegate, args);
          WrapperInvocationHandler handler = new WrapperInvocationHandler(rs,
              this);
  
          if (resultSets == null) {
              resultSets = new HashSet();
          }
  
          // Changed to set of ResultSet invocation handlers so
          // that handler resources can be cleaned up too.
          resultSets.add(handler);
  
          return handler.surrogate;
      }
docs: Surrogate for any method of the delegate that returns an
  instance of <tt>ResultSet</tt>. <p>
  
  @param method returning a <tt>ResultSet</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 ResultSet object