docs: public void removeLockedObject() {
          if (this != resourceLocks.root && !this.getPath().equals("/")) {
  
              int size = parent.children.length;
              for (int i = 0; i < size; i++) {
                  if (parent.children[i].equals(this)) {
                      LockedObject[] newChildren = new LockedObject[size - 1];
                      for (int i2 = 0; i2 < (size - 1); i2++) {
                          if (i2 < i) {
                              newChildren[i2] = parent.children[i2];
                          } else {
                              newChildren[i2] = parent.children[i2 + 1];
                          }
                      }
                      if (newChildren.length != 0) {
                          parent.children = newChildren;
                      } else {
                          parent.children = null;
                      }
                      break;
                  }
              }
  
              // removing from hashtable
              resourceLocks.locksByID.remove(getID());
              resourceLocks.locks.remove(getPath());
  
              // now the garbage collector has some work to do
          }
      }