You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by je...@apache.org on 2011/10/19 23:14:53 UTC
svn commit: r1186496 -
/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java
Author: jens
Date: Wed Oct 19 21:14:52 2011
New Revision: 1186496
URL: http://svn.apache.org/viewvc?rev=1186496&view=rev
Log:
fix a bug in deleteTree, consider allVersions parmeter
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java?rev=1186496&r1=1186495&r2=1186496&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java Wed Oct 19 21:14:52 2011
@@ -158,8 +158,7 @@ public class ObjectStoreImpl implements
}
public void deleteObject(String objectId, Boolean allVersions, String user) {
- String path = objectId; // currently the same
- StoredObject obj = fStoredObjectMap.get(path);
+ StoredObject obj = fStoredObjectMap.get(objectId);
if (null == obj) {
throw new RuntimeException("Cannot delete object with id " + objectId + ". Object does not exist.");
@@ -170,13 +169,24 @@ public class ObjectStoreImpl implements
} else if (obj instanceof DocumentVersion) {
DocumentVersion vers = (DocumentVersion) obj;
VersionedDocument parentDoc = vers.getParentDocument();
- fStoredObjectMap.remove(path);
- boolean otherVersionsExist = vers.getParentDocument().deleteVersion(vers);
- if (!otherVersionsExist) {
+ boolean otherVersionsExists;
+ if (allVersions != null && allVersions) {
+ otherVersionsExists = false;
+ List<DocumentVersion> allVers = parentDoc.getAllVersions();
+ for (DocumentVersion ver : allVers) {
+ parentDoc.deleteVersion(ver);
+ fStoredObjectMap.remove(ver.getId());
+ }
+ } else {
+ fStoredObjectMap.remove(objectId);
+ otherVersionsExists = parentDoc.deleteVersion(vers);
+ }
+
+ if (!otherVersionsExists) {
fStoredObjectMap.remove(parentDoc.getId());
}
} else {
- fStoredObjectMap.remove(path);
+ fStoredObjectMap.remove(objectId);
}
}