Workaround for ALF-11140

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31720 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Florian Mü
2011-11-04 05:05:33 +00:00
parent 1c2c8442af
commit f19c9e5b52
2 changed files with 37 additions and 21 deletions

View File

@@ -2672,6 +2672,14 @@ public class AlfrescoCmisService extends AbstractCmisService
{ {
CMISNodeInfo nodeInfo = getOrCreateNodeInfo(objectId); CMISNodeInfo nodeInfo = getOrCreateNodeInfo(objectId);
if (nodeInfo.getObjectVariant() == CMISObjectVariant.INVALID_ID
|| nodeInfo.getObjectVariant() == CMISObjectVariant.NOT_EXISTING
|| nodeInfo.getObjectVariant() == CMISObjectVariant.NOT_A_CMIS_OBJECT
|| nodeInfo.getObjectVariant() == CMISObjectVariant.PERMISSION_DENIED)
{
info = null;
} else
{
// object info has not been found -> create one // object info has not been found -> create one
try try
{ {
@@ -2697,6 +2705,8 @@ public class AlfrescoCmisService extends AbstractCmisService
info = null; info = null;
} }
} }
}
return info; return info;
} }

View File

@@ -282,6 +282,12 @@ public class CMISNodeInfoImpl implements CMISNodeInfo
if (connector.getCheckOutCheckInService().isWorkingCopy(nodeRef)) if (connector.getCheckOutCheckInService().isWorkingCopy(nodeRef))
{ {
NodeRef checkedOut = connector.getCheckOutCheckInService().getCheckedOut(nodeRef); NodeRef checkedOut = connector.getCheckOutCheckInService().getCheckedOut(nodeRef);
if (checkedOut == null)
{
// catch a rare audit case
checkedOut = nodeRef;
}
objecVariant = CMISObjectVariant.PWC; objecVariant = CMISObjectVariant.PWC;
objectId = checkedOut.toString() + CMISConnector.ID_SEPERATOR + CMISConnector.PWC_VERSION_LABEL; objectId = checkedOut.toString() + CMISConnector.ID_SEPERATOR + CMISConnector.PWC_VERSION_LABEL;
versionLabel = CMISConnector.PWC_VERSION_LABEL; versionLabel = CMISConnector.PWC_VERSION_LABEL;