Author: fmui
Date: Tue Aug 11 12:16:13 2015
New Revision: 1695288

URL: http://svn.apache.org/r1695288
Log:
fixed a problem with change tokens in bulkUpdateProperties()

Modified:
    
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java
    
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/wrapper/ConformanceCmisServiceWrapper.java

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java?rev=1695288&r1=1695287&r2=1695288&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java
 Tue Aug 11 12:16:13 2015
@@ -484,6 +484,9 @@ public class ObjectService {
             for (int i = 0; i < n; i++) {
                 String id = objectIds.get(i);
                 String changeToken = (changeTokens != null && 
changeTokens.size() > i ? changeTokens.get(i) : null);
+                if (changeToken.length() == 0) {
+                    changeToken = null;
+                }
                 objectIdAndChangeToken.add(new 
BulkUpdateObjectIdAndChangeTokenImpl(id, changeToken));
             }
 

Modified: 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/wrapper/ConformanceCmisServiceWrapper.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/wrapper/ConformanceCmisServiceWrapper.java?rev=1695288&r1=1695287&r2=1695288&view=diff
==============================================================================
--- 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/wrapper/ConformanceCmisServiceWrapper.java
 (original)
+++ 
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/wrapper/ConformanceCmisServiceWrapper.java
 Tue Aug 11 12:16:13 2015
@@ -317,6 +317,34 @@ public class ConformanceCmisServiceWrapp
     }
 
     /**
+     * Throws an exception if the given list is {@code null} or empty or
+     * invalid.
+     */
+    protected void checkBulkUpdateList(List<BulkUpdateObjectIdAndChangeToken> 
list) {
+        if (list == null) {
+            throw new CmisInvalidArgumentException("Object Id list must be 
set!");
+        }
+
+        if (list.isEmpty()) {
+            throw new CmisInvalidArgumentException("Object Id list must not be 
empty!");
+        }
+
+        for (BulkUpdateObjectIdAndChangeToken entry : list) {
+            if (entry == null) {
+                throw new CmisInvalidArgumentException("Object Id list has 
gaps!");
+            }
+
+            if (entry.getId() == null) {
+                throw new CmisInvalidArgumentException("Object Id list 
contains an entry without ID!");
+            }
+
+            if (entry.getId().length() == 0) {
+                throw new CmisInvalidArgumentException("Object Id list 
contains an entry with an empty ID!");
+            }
+        }
+    }
+
+    /**
      * Returns <code>true</code> if <code>value</code> is {@code null}.
      */
     protected Boolean getDefaultTrue(Boolean value) {
@@ -1008,7 +1036,7 @@ public class ConformanceCmisServiceWrapp
             List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, 
Properties properties,
             List<String> addSecondaryTypeIds, List<String> 
removeSecondaryTypeIds, ExtensionsData extension) {
         checkRepositoryId(repositoryId);
-        checkList("Object Id list", objectIdAndChangeToken);
+        checkBulkUpdateList(objectIdAndChangeToken);
         checkProperties(properties);
 
         try {


Reply via email to