docs: public Object remove(int index)
      {
          DListEntry entry = (DListEntry) elements.get(index);
          // if we are in a transaction: acquire locks !
          TransactionImpl tx = getTransaction();
          if (checkForOpenTransaction(tx))
          {
              tx.deletePersistent(new RuntimeObject(entry, tx));
          }
          elements.remove(index);
          // changing the position markers of entries:
          int offset = 0;
          try
          {
              offset = ((DListEntry) elements.get(index)).getPosition();
          }
          catch (Exception ignored)
          {
          }
          for (int i = offset; i < elements.size(); i++)
          {
              entry = (DListEntry) elements.get(i);
              entry.setPosition(i);
          }
  
          return entry.getRealSubject();
      }