docs: public synchronized void removeObject(String id) {
  
          m_cache = null;
          if (m_relativeOrdered) {
              if (m_uniqueIds) {
                  Object o = getObject(id);
                  Iterator<CmsIdObjectElement<T>> itObjs = m_orderedObjectList.iterator();
                  while (itObjs.hasNext()) {
                      CmsIdObjectElement<T> object = itObjs.next();
                      if (object.getObject() == o) {
                          itObjs.remove();
                          break;
                      }
                  }
                  m_objectsById.remove(id);
              } else {
                  Iterator<T> itRemove = m_objectsListsById.get(id).iterator();
                  while (itRemove.hasNext()) {
                      T o = itRemove.next();
                      Iterator<CmsIdObjectElement<T>> itObjs = m_orderedObjectList.iterator();
                      while (itObjs.hasNext()) {
                          CmsIdObjectElement<T> object = itObjs.next();
                          if (object.getObject() == o) {
                              itObjs.remove();
                              break;
                          }
                      }
                  }
                  m_orderedObjectList.remove(id);
              }
          } else {
              Object o = getObject(id);
              m_objectList.remove(o);
              if (m_uniqueIds) {
                  m_objectsById.remove(id);
              } else {
                  m_objectsListsById.remove(id);
              }
          }
      }