code: public boolean release() {
  
      if (this.released) {
        // already (marked as) released...
        return false;
      }
      this.released = true;
      if (this.childCount == 0) {
        if (this.parent == null) {
          return true;
        } else {
          assert (this.parent.childCount > 0);
          this.parent.childCount--;
          if ((this.parent.childCount == 0) && (this.parent.released)) {
            return true;
          }
        }
      }
      return false;
    }
docs: This method marks this array to be released.
  
  @return {@code true} if this array can be released, {@code false} if there are references left that have to be
  released before.