From 0c68a8910f16f94d87330bf595067464a5497570 Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Mon, 19 Nov 2012 10:11:55 +0000 Subject: [PATCH] Fix for ALF-16836 CMIS isImmutable is not shown correctly git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@43683 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/opencmis/mapping/IsImmutableProperty.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/source/java/org/alfresco/opencmis/mapping/IsImmutableProperty.java b/source/java/org/alfresco/opencmis/mapping/IsImmutableProperty.java index 46cbaaa3f5..7ace032b13 100644 --- a/source/java/org/alfresco/opencmis/mapping/IsImmutableProperty.java +++ b/source/java/org/alfresco/opencmis/mapping/IsImmutableProperty.java @@ -23,6 +23,9 @@ import java.io.Serializable; import org.alfresco.opencmis.CMISConnector; import org.alfresco.opencmis.dictionary.CMISNodeInfo; import org.alfresco.service.ServiceRegistry; +import org.alfresco.service.cmr.lock.LockService; +import org.alfresco.service.cmr.lock.LockType; +import org.alfresco.service.cmr.repository.NodeRef; import org.apache.chemistry.opencmis.commons.PropertyIds; /** @@ -32,18 +35,22 @@ import org.apache.chemistry.opencmis.commons.PropertyIds; */ public class IsImmutableProperty extends AbstractProperty { + private LockService lockService; + /** * Construct */ public IsImmutableProperty(ServiceRegistry serviceRegistry, CMISConnector connector) { super(serviceRegistry, connector, PropertyIds.IS_IMMUTABLE); + lockService = serviceRegistry.getLockService(); } @Override public Serializable getValueInternal(CMISNodeInfo nodeInfo) { - if (nodeInfo.isVersion()) + NodeRef nodeRef = nodeInfo.getNodeRef(); + if (nodeInfo.isVersion() || (nodeInfo.hasPWC() && !nodeInfo.isPWC()) || (lockService.getLockType(nodeRef) == LockType.READ_ONLY_LOCK)) { return true; }