示例#1
0
  protected void writeRevision(InternalCDORevision revision, OMMonitor monitor) {
    Async async = null;
    monitor.begin(10);

    try {
      try {
        async = monitor.forkAsync();
        if (revision.isResourceNode()) {
          checkDuplicateResources(revision);
        }
      } finally {
        if (async != null) {
          async.stop();
        }
      }

      // TODO removal of previous version implies query, this should be optimized

      long start = System.currentTimeMillis();
      CDOID id = revision.getID();
      DB4OStore.removeRevision(getObjectContainer(), id);
      DB4ORevision primitiveRevision = DB4ORevision.getDB4ORevision(revision);
      writeObject(primitiveRevision, monitor);
      long end = System.currentTimeMillis();
      OM.LOG.debug("Writing revision " + id + " took: " + (end - start) + " milliseconds");
    } finally {
      monitor.done();
    }
  }
示例#2
0
  @Override
  protected void detachObjects(
      CDOID[] detachedObjects, CDOBranch branch, long timeStamp, OMMonitor monitor) {
    monitor.begin(detachedObjects.length);

    try {
      for (CDOID id : detachedObjects) {
        DB4OStore.removeRevision(getObjectContainer(), id);
        monitor.worked();
      }
    } finally {
      monitor.done();
    }
  }