From b137bdb21f35df0c2a05f6cb4e0c31a80c121a56 Mon Sep 17 00:00:00 2001 From: Mark Rogers Date: Tue, 20 Oct 2009 09:25:04 +0000 Subject: [PATCH] ETHREEOH-2126 - WCM meta data extraction does not extract title when form is created - metadata extractor was not firing - titled aspect was applied after extraction thereby overwriting extracted value. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17034 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../java/org/alfresco/repo/avm/AVMNodeService.java | 14 ++++++++------ .../java/org/alfresco/repo/avm/AVMServiceImpl.java | 8 +++++++- .../org/alfresco/repo/domain/PropertyValue.java | 3 ++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/source/java/org/alfresco/repo/avm/AVMNodeService.java b/source/java/org/alfresco/repo/avm/AVMNodeService.java index 7e1e3d0da0..6effe3c69f 100644 --- a/source/java/org/alfresco/repo/avm/AVMNodeService.java +++ b/source/java/org/alfresco/repo/avm/AVMNodeService.java @@ -1418,6 +1418,13 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi { throw new InvalidNodeRefException("Read only store.", nodeRef); } + + Map propsBefore = null; + if (fInvokePolicies) + { + propsBefore = getProperties(nodeRef); + } + if (isBuiltInProperty(qname)) { if (qname.equals(ContentModel.PROP_CONTENT)) @@ -1427,7 +1434,6 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi fAVMService.setContentData(avmVersionPath.getSecond(), (ContentData)value); if (fInvokePolicies) { - Map propsBefore = getProperties(nodeRef); Map propsAfter = new HashMap(propsBefore); propsAfter.put(ContentModel.PROP_CONTENT, value); invokeOnUpdateProperties(nodeRef, propsBefore, propsAfter); @@ -1442,11 +1448,7 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi } try { - Map propsBefore = null; - if (fInvokePolicies) - { - propsBefore = getProperties(nodeRef); - } + PropertyDefinition propertyDef = dictionaryService.getProperty(qname); PropertyValue propertyValue = makePropertyValue(propertyDef, value); fAVMService.setNodeProperty(avmVersionPath.getSecond(), qname, propertyValue); diff --git a/source/java/org/alfresco/repo/avm/AVMServiceImpl.java b/source/java/org/alfresco/repo/avm/AVMServiceImpl.java index 4ed9eadd45..6a0ad9be92 100644 --- a/source/java/org/alfresco/repo/avm/AVMServiceImpl.java +++ b/source/java/org/alfresco/repo/avm/AVMServiceImpl.java @@ -386,10 +386,16 @@ public class AVMServiceImpl implements AVMService */ public void createFile(String path, String name, InputStream in, List aspects, Map properties) { - if (path == null || name == null || in == null || !FileNameValidator.isValid(name)) + if (path == null || name == null || in == null) { throw new AVMBadArgumentException("Illegal argument."); } + + if(!FileNameValidator.isValid(name)) + { + throw new AVMBadArgumentException("Illegal argument, name:" + name); + } + // Save the contents to temp space. File temp; try diff --git a/source/java/org/alfresco/repo/domain/PropertyValue.java b/source/java/org/alfresco/repo/domain/PropertyValue.java index 682fb3e315..d6dd722ef6 100644 --- a/source/java/org/alfresco/repo/domain/PropertyValue.java +++ b/source/java/org/alfresco/repo/domain/PropertyValue.java @@ -670,7 +670,8 @@ public class PropertyValue implements Cloneable, Serializable /** * Construct a new property value. * - * @param typeQName the dictionary-defined property type to store the property as + * @param typeQName the dictionary-defined property type to store the property as. + * May be null in which case the type will be determined from the value parameter. * @param value the value to store. This will be converted into a format compatible * with the type given *