From e118d1468716704c5d2cb555874711760dc62a16 Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Wed, 28 Nov 2012 11:26:41 +0000 Subject: [PATCH] Merged BRANCHES/DEV/V4.1-BUG-FIX to HEAD 44080: Hardening of QNameFieldProcessor against fields specified with residual or missing namespaces (re ALF-16696) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@44081 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../forms/processor/node/QNameFieldProcessor.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/source/java/org/alfresco/repo/forms/processor/node/QNameFieldProcessor.java b/source/java/org/alfresco/repo/forms/processor/node/QNameFieldProcessor.java index 5f3cfd285a..5a6f6c39f4 100644 --- a/source/java/org/alfresco/repo/forms/processor/node/QNameFieldProcessor.java +++ b/source/java/org/alfresco/repo/forms/processor/node/QNameFieldProcessor.java @@ -28,6 +28,7 @@ import org.alfresco.repo.forms.processor.FieldProcessor; import org.alfresco.repo.forms.processor.FormCreationData; import org.alfresco.service.cmr.dictionary.ClassAttributeDefinition; import org.alfresco.service.cmr.dictionary.DictionaryService; +import org.alfresco.service.namespace.NamespaceException; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; @@ -61,9 +62,17 @@ public abstract class QNameFieldProcessor @Override protected Field generateTypedField(String fieldName, FormCreationData formData, ContentModelItemData typedData) { - QName fullName = getFullName(fieldName); - boolean isForcedField = formData.isForcedField(fieldName); - Field field = generateField(fullName, typedData, isForcedField); + Field field = null; + try + { + QName fullName = getFullName(fieldName); + boolean isForcedField = formData.isForcedField(fieldName); + field = generateField(fullName, typedData, isForcedField); + } + catch (NamespaceException ne) + { + // ignore fields with an invalid namespace - the model may no longer be present in the repository + } return field; }