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
This commit is contained in:
Kevin Roast
2012-11-28 11:26:41 +00:00
parent 60b625ccf2
commit e118d14687

View File

@@ -28,6 +28,7 @@ import org.alfresco.repo.forms.processor.FieldProcessor;
import org.alfresco.repo.forms.processor.FormCreationData; import org.alfresco.repo.forms.processor.FormCreationData;
import org.alfresco.service.cmr.dictionary.ClassAttributeDefinition; import org.alfresco.service.cmr.dictionary.ClassAttributeDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService; import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.namespace.NamespaceException;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName; import org.alfresco.service.namespace.QName;
@@ -61,9 +62,17 @@ public abstract class QNameFieldProcessor<Type extends ClassAttributeDefinition>
@Override @Override
protected Field generateTypedField(String fieldName, FormCreationData formData, ContentModelItemData<?> typedData) protected Field generateTypedField(String fieldName, FormCreationData formData, ContentModelItemData<?> typedData)
{ {
QName fullName = getFullName(fieldName); Field field = null;
boolean isForcedField = formData.isForcedField(fieldName); try
Field field = generateField(fullName, typedData, isForcedField); {
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; return field;
} }