docs: protected boolean isClosedSurrogate() throws Throwable {
  
          if (this.surrogateClosed) {
              return true;
          }
  
          // This part is overkill now, but does not introduce
          // incorrect operation.
          //
  
          /**
           * @todo:  Special handling to check the parent is still desirable
           *       for Array surrogates (and any other proxied delegate
           *       that has a parent whose valid lifetime is at most the
           *       life of the parent and does not expose a public close()
           *       method through the JDBC API
           */
          WrapperInvocationHandler parent = this.parentHandler;
  
          if (parent != null && parent.isClosedSurrogate()) {
              closeSurrogate();
          }
  
          return this.surrogateClosed;
      }