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 {