docs: private ResourceException processHandleDissociationError(int handleIndex,
                                                               ResourceException dissociationX) {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(this, tc, "processHandleDissociationError", handleIndex, dissociationX.getMessage()); 
  
          WSJdbcConnection handle = handlesInUse[handleIndex]; 
  
          // If we receive an error for dissociating a handle which is currently in use,
          // just close the handle instead , provided we can still access it.
  
          String errCode = dissociationX.getErrorCode(); 
          if ((errCode != null && errCode.equals("HANDLE_IN_USE")) && handle != null)
              try 
              {
                  if (isTraceOn && tc.isDebugEnabled())
                      Tr.debug(this, tc, 
                               "Unable to dissociate handle because it is doing work in the database.  " +
                                               "Closing it instead.",
                               handlesInUse[handleIndex]);
  
                  // This is a JDBC specific error, so we can cast to java.sql.Connection.
                  ((java.sql.Connection) handle).close();
  
                  // If the handle close is successful, this situation is NOT considered an error.
                  dissociationX = null;
              } catch (SQLException closeX) {
                  // No FFDC code needed here because we do it below.
                  dissociationX = new DataStoreAdapterException("DSA_ERROR", closeX, getClass(), closeX);
              }
  
          if (dissociationX != null) {
              FFDCFilter.processException(dissociationX,
                                          getClass().getName() + ".processHandleDissociationError", "1024", this);
  
              // The connection handle already signals a ConnectionError event on any fatal
              // error on dissociation, so there is no need to check if the exception maps to
              // connection error.
  
              if (isTraceOn && tc.isEventEnabled())
                  Tr.event(this, tc, 
                           "Error dissociating handle. Continuing...", handle);
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(this, tc, "processHandleDissociationError", 
                      dissociationX == null ? null : dissociationX.getMessage());
  
          return dissociationX;
      }