diff --git a/source/java/org/alfresco/cmis/CMISUpdatabilityEnum.java b/source/java/org/alfresco/cmis/CMISUpdatabilityEnum.java index cfe74fa15a..e639c85dd1 100644 --- a/source/java/org/alfresco/cmis/CMISUpdatabilityEnum.java +++ b/source/java/org/alfresco/cmis/CMISUpdatabilityEnum.java @@ -27,7 +27,8 @@ public enum CMISUpdatabilityEnum implements EnumLabel { READ_ONLY("readonly"), READ_AND_WRITE("readwrite"), - READ_AND_WRITE_WHEN_CHECKED_OUT("whencheckedout"); + READ_AND_WRITE_WHEN_CHECKED_OUT("whencheckedout"), + ON_CREATE("oncreate"); private String label; diff --git a/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java b/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java index 62b1943590..a7d5075a09 100644 --- a/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java +++ b/source/java/org/alfresco/cmis/dictionary/CMISBasePropertyDefinition.java @@ -25,6 +25,7 @@ import java.util.HashSet; import org.alfresco.cmis.CMISCardinalityEnum; import org.alfresco.cmis.CMISChoice; import org.alfresco.cmis.CMISDataTypeEnum; +import org.alfresco.cmis.CMISDictionaryModel; import org.alfresco.cmis.CMISPropertyDefinition; import org.alfresco.cmis.CMISPropertyId; import org.alfresco.cmis.CMISTypeDefinition; @@ -140,7 +141,15 @@ public class CMISBasePropertyDefinition implements CMISPropertyDefinition, Seria } required = propDef.isMandatory(); defaultValue = propDef.getDefaultValue(); - updatability = propDef.isProtected() ? CMISUpdatabilityEnum.READ_ONLY : CMISUpdatabilityEnum.READ_AND_WRITE; + if (propertyId.getId().equals(CMISDictionaryModel.PROP_OBJECT_TYPE_ID)) + { + // Fix http://issues.alfresco.com/jira/browse/ALF-2637 + updatability = CMISUpdatabilityEnum.ON_CREATE; + } + else + { + updatability = propDef.isProtected() ? CMISUpdatabilityEnum.READ_ONLY : CMISUpdatabilityEnum.READ_AND_WRITE; + } queryable = propDef.isIndexed(); if (queryable) {