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(); } }
@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(); } }