diff --git a/source/java/org/alfresco/service/cmr/repository/AssociationRef.java b/source/java/org/alfresco/service/cmr/repository/AssociationRef.java
index 3121cf306e..3ff852857e 100644
--- a/source/java/org/alfresco/service/cmr/repository/AssociationRef.java
+++ b/source/java/org/alfresco/service/cmr/repository/AssociationRef.java
@@ -77,16 +77,21 @@ public class AssociationRef implements EntityRef, Serializable
}
/**
- * @param childAssocRefStr a string of the form sourceNodeRef|targetNodeRef|assocTypeQName
+ * @param childAssocRefStr a string of the form id|sourceNodeRef|targetNodeRef|assocTypeQName.
*/
public AssociationRef(String assocRefStr)
{
StringTokenizer tokenizer = new StringTokenizer(assocRefStr, FILLER);
- if (tokenizer.countTokens() != 3)
+ if (tokenizer.countTokens() != 3 && tokenizer.countTokens() != 4)
{
throw new AlfrescoRuntimeException("Unable to parse association string: " + assocRefStr);
}
- String idStr = tokenizer.nextToken();
+
+ String idStr = "0";
+ if (tokenizer.countTokens() == 4)
+ {
+ idStr = tokenizer.nextToken();
+ }
String sourceNodeRefStr = tokenizer.nextToken();
String targetNodeRefStr = tokenizer.nextToken();
String assocTypeQNameStr = tokenizer.nextToken();