docs: @Trivial
      public static File delete(File file) {
          String methodName = "delete";
  
          String filePath;
          if ( tc.isDebugEnabled() ) {
              filePath = file.getAbsolutePath();
          } else {
              filePath = null;
          }
  
          if ( file.isDirectory() ) {
              if ( filePath != null ) {
                  Tr.debug(tc, methodName + ": Delete directory [ " + filePath + " ]");
              }
  
              File firstFailure = null;
  
              File[] subFiles = file.listFiles();
              if ( subFiles != null ) {
                  for ( File subFile : subFiles ) {
                      File nextFailure = delete(subFile);
                      if ( (nextFailure != null) && (firstFailure == null) ) {
                          firstFailure = nextFailure;
                      }
                  }
              }
  
              if ( firstFailure != null ) {
                  if ( filePath != null ) {
                      Tr.debug(tc, methodName +
                          ": Cannot delete [ " + filePath + " ]" +
                          " Child [ " + firstFailure.getAbsolutePath() + " ] could not be deleted.");
                  }
                  return firstFailure;
              }
          } else {
              if ( filePath != null ) {
                  Tr.debug(tc, methodName + ": Delete simple file [ " + filePath + " ]");
              }
          }
  
          if ( !file.delete() ) {
              if ( filePath != null ) {
                  Tr.debug(tc, methodName + ": Failed to delete [ " + filePath + " ]");
              }
              return file;
          } else {
              if ( filePath != null ) {
                  Tr.debug(tc, methodName + ": Deleted [ " + filePath + " ]");
              }
              return null;
          }
      }