mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Correct handling of nulls and empty strings for PropertyBackedBeans (actually save empty strings)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14354 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -342,10 +342,6 @@ public class ChildApplicationContextFactory extends AbstractPropertyBackedBean i
|
|||||||
{
|
{
|
||||||
updateCompositeProperty(name, value, type);
|
updateCompositeProperty(name, value, type);
|
||||||
}
|
}
|
||||||
else if (value == null)
|
|
||||||
{
|
|
||||||
this.properties.remove(name);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
this.properties.setProperty(name, value);
|
this.properties.setProperty(name, value);
|
||||||
@@ -370,39 +366,32 @@ public class ChildApplicationContextFactory extends AbstractPropertyBackedBean i
|
|||||||
Map<String, CompositeDataBean> propertyValues = this.compositeProperties.get(name);
|
Map<String, CompositeDataBean> propertyValues = this.compositeProperties.get(name);
|
||||||
if (propertyValues == null)
|
if (propertyValues == null)
|
||||||
{
|
{
|
||||||
if (value == null)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
propertyValues = Collections.emptyMap();
|
propertyValues = Collections.emptyMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Map<String, CompositeDataBean> newPropertyValues = new LinkedHashMap<String, CompositeDataBean>(11);
|
Map<String, CompositeDataBean> newPropertyValues = new LinkedHashMap<String, CompositeDataBean>(11);
|
||||||
if (value != null)
|
StringTokenizer tkn = new StringTokenizer(value, ", \t\n\r\f");
|
||||||
|
while (tkn.hasMoreTokens())
|
||||||
{
|
{
|
||||||
StringTokenizer tkn = new StringTokenizer(value, ", \t\n\r\f");
|
String id = tkn.nextToken();
|
||||||
while (tkn.hasMoreTokens())
|
|
||||||
|
// Generate a unique ID within the category
|
||||||
|
List<String> childId = new ArrayList<String>(3);
|
||||||
|
childId.addAll(getId());
|
||||||
|
childId.add(name);
|
||||||
|
childId.add(id);
|
||||||
|
|
||||||
|
// Look out for new or updated children
|
||||||
|
CompositeDataBean child = propertyValues.get(id);
|
||||||
|
|
||||||
|
if (child == null)
|
||||||
{
|
{
|
||||||
String id = tkn.nextToken();
|
child = new CompositeDataBean(getParent(), this, getRegistry(), getPropertyDefaults(),
|
||||||
|
getCategory(), type, childId);
|
||||||
// Generate a unique ID within the category
|
|
||||||
List<String> childId = new ArrayList<String>(3);
|
|
||||||
childId.addAll(getId());
|
|
||||||
childId.add(name);
|
|
||||||
childId.add(id);
|
|
||||||
|
|
||||||
// Look out for new or updated children
|
|
||||||
CompositeDataBean child = propertyValues.get(id);
|
|
||||||
|
|
||||||
if (child == null)
|
|
||||||
{
|
|
||||||
child = new CompositeDataBean(getParent(), this, getRegistry(), getPropertyDefaults(),
|
|
||||||
getCategory(), type, childId);
|
|
||||||
}
|
|
||||||
newPropertyValues.put(id, child);
|
|
||||||
}
|
}
|
||||||
|
newPropertyValues.put(id, child);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Destroy any children that have been removed
|
// Destroy any children that have been removed
|
||||||
|
Reference in New Issue
Block a user