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 2013/08/07 21:13:38 UTC
svn commit: r1511442 -
/chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
Author: jens
Date: Wed Aug 7 19:13:38 2013
New Revision: 1511442
URL: http://svn.apache.org/r1511442
Log:
InMemory: small fix to avoid potential NPE
Modified:
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
Modified: chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java?rev=1511442&r1=1511441&r2=1511442&view=diff
==============================================================================
--- chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java (original)
+++ chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java Wed Aug 7 19:13:38 2013
@@ -669,17 +669,17 @@ public class InMemoryObjectServiceImpl e
PropertyData<?> value = properties.getProperties().get(key);
PropertyDefinition<?> propDef = typeDef.getPropertyDefinitions().get(key);
+ if (cmis11 && null == propDef) {
+ TypeDefinition typeDefSecondary = getSecondaryTypeDefinition(repositoryId, secondaryTypeIds, key);
+ if (null == typeDefSecondary)
+ throw new CmisInvalidArgumentException("Cannot update property " + key
+ + ": not contained in type");
+ propDef = typeDefSecondary.getPropertyDefinitions().get(key);
+ }
+
if (null == propDef) {
- if (cmis11) {
- TypeDefinition typeDefSecondary = getSecondaryTypeDefinition(repositoryId, secondaryTypeIds, key);
- if (null == typeDefSecondary)
- throw new CmisInvalidArgumentException("Cannot update property " + key
- + ": not contained in type");
- propDef = typeDefSecondary.getPropertyDefinitions().get(key);
- } else {
- throw new CmisInvalidArgumentException("Unknown property " + key
- + ": not contained in type");
- }
+ throw new CmisInvalidArgumentException("Unknown property " + key
+ + ": not contained in type (or any secondary type)");
}
if (value.getValues() == null || value.getFirstValue() == null) {
@@ -693,12 +693,12 @@ public class InMemoryObjectServiceImpl e
oldProperties.remove(key);
hasUpdatedProp = true;
} else {
- if (propDef.getUpdatability().equals(Updatability.WHENCHECKEDOUT)) {
+ if (propDef.getUpdatability() == Updatability.WHENCHECKEDOUT) {
if (!isCheckedOut)
throw new CmisUpdateConflictException(
"updateProperties failed, following property can't be updated, because it is not checked-out: "
+ key);
- } else if (!propDef.getUpdatability().equals(Updatability.READWRITE)) {
+ } else if (propDef.getUpdatability() != Updatability.READWRITE) {
throw new CmisConstraintException(
"updateProperties failed, following property can't be updated, because it is not writable: "
+ key);