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 2016/04/19 13:51:35 UTC
svn commit: r1739911 - in
/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src:
main/java/org/apache/chemistry/opencmis/inmemory/server/
test/java/org/apache/chemistry/opencmis/inmemory/
Author: jens
Date: Tue Apr 19 11:51:35 2016
New Revision: 1739911
URL: http://svn.apache.org/viewvc?rev=1739911&view=rev
Log:
Avoid inconsistent state in InMemory server when creating a document in checked-out state (by not allowing this)
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/VersioningTest.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.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/server/InMemoryObjectServiceImpl.java?rev=1739911&r1=1739910&r2=1739911&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java Tue Apr 19 11:51:35 2016
@@ -894,7 +894,12 @@ public class InMemoryObjectServiceImpl e
// validate content allowed
TypeValidator.validateContentAllowed((DocumentTypeDefinition) typeDef, null != contentStream);
+ // Check that documents are not created as checked-out as this results in an inconsistent state
TypeValidator.validateVersionStateForCreate((DocumentTypeDefinition) typeDef, versioningState);
+ if (typeDef instanceof DocumentTypeDefinition && ((DocumentTypeDefinition) typeDef).isVersionable()
+ && null != versioningState && versioningState.equals(VersioningState.CHECKEDOUT)) {
+ throw new CmisConstraintException("Creating of checked-out documents is not supported.");
+ }
// set properties that are not set but have a default:
Map<String, PropertyData<?>> propMapNew = setDefaultProperties(typeDef, propMap);
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/VersioningTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/VersioningTest.java?rev=1739911&r1=1739910&r2=1739911&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/VersioningTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/VersioningTest.java Tue Apr 19 11:51:35 2016
@@ -98,7 +98,12 @@ public class VersioningTest extends Abst
@Test
public void testCreateVersionedDocumentCheckedOut() {
- createVersionedDocument(VersioningState.CHECKEDOUT);
+ try {
+ createVersionedDocument(VersioningState.CHECKEDOUT);
+ fail("creating a document of a versionable type with state VersioningState.CHECKEDOUT should fail.");
+ } catch (Exception e) {
+ assertEquals(CmisConstraintException.class, e.getClass());
+ }
}
@Test