docs: protected SQLException closeWrapper(boolean closeWrapperOnly) 
      {
          // Indicate the result is closed by setting the parent object's result set to null.
          // This will allow us to be garbage collected.
  
          //  - Since we use childWrapper for the first result set, 
          // so we first compare childWrapper object. 
  
          if (parentWrapper.childWrapper == this) {
              parentWrapper.childWrapper = null;
          } else {
              // This result set must be stored in childWrappers.
              parentWrapper.childWrappers.remove(this);
          }
  
          if (closeWrapperOnly) { 
              // skip close of implementation object.  (Statement.getMoreResults will do it.)
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) { 
                  Tr.debug(this, tc, "closeWrapper skipping close of ResultSet implementation object"); 
              }
          } else { 
              try // Close the JDBC driver ResultSet implementation object.
              {
                  rsetImpl.close();
              } catch (SQLException closeX) {
                  FFDCFilter.processException(closeX,
                                              "com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.closeWrapper", "246", this);
  
                  rsetImpl = null;
                  return WSJdbcUtil.mapException(this, closeX);
              }
  
          }
          
          // Check if the parent object is a WSJdbcStatement, and closeOnCompletion is enabled
          if(parentWrapper != null && parentWrapper instanceof WSJdbcStatement && ((WSJdbcStatement)parentWrapper).closeOnCompletion)
          {
              WSJdbcStatement parentStmt = (WSJdbcStatement) parentWrapper;
              // If the parent Statement has no more child objects, close the Statement
              if(parentStmt.childWrapper == null && (parentStmt.childWrappers == null || parentStmt.childWrappers.isEmpty()))
              {
                  try{
                      parentStmt.close();
                  } catch(SQLException closeX){
                      FFDCFilter.processException(closeX,
                                                  "com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.closeWrapper", "281", this);
                      rsetImpl = null;
                      return WSJdbcUtil.mapException(this, closeX);
                  }
              }
          }
  
          rsetImpl = null;
          return null;
      }