Author: sergiykarpenko
Date: 2009-11-23 08:46:17 -0500 (Mon, 23 Nov 2009)
New Revision: 809
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java
Log:
EXOJCR-246: JBossCacheStorageConnection updateProperty fixed
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java 2009-11-23
13:32:26 UTC (rev 808)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnection.java 2009-11-23
13:46:17 UTC (rev 809)
@@ -334,19 +334,19 @@
+ data.getQPath().getAsString());
}
- if (data.getType() == PropertyType.REFERENCE)
+ Fqn propUUID = makePropFqn(data.getIdentifier());
+
+ Node<Serializable, Object> prop = propsRoot.getChild(propUUID);
+ PropertyData oldData = (PropertyData)prop.get(ITEM_DATA);
+ if (oldData == null)
{
+ throw new RepositoryException("FATAL PropertyData already empty " +
data.getQPath().getAsString());
+ }
+
+ if (oldData.getType() == PropertyType.REFERENCE)
+ {
// get values from cahce
- Fqn propUUID = makeNodeFqn(data.getIdentifier());
-
- Node<Serializable, Object> prop = propsRoot.getChild(propUUID);
- PropertyData oldData = (PropertyData)prop.get(ITEM_DATA);
- if (oldData == null)
- {
- throw new RepositoryException("FATAL PropertyData already empty " +
data.getQPath().getAsString());
- }
-
for (ValueData value : oldData.getValues())
{
@@ -869,52 +869,61 @@
throw new IllegalStateException("Property was deleted " +
data.getQPath().getAsString());
}
- if (data.getType() == PropertyType.REFERENCE)
+ // get old PropertyData
+ prop.get(ITEM_DATA);
+ PropertyData propData = (PropertyData)prop.get(ITEM_DATA);
+ if (propData == null)
{
- PropertyData propData = (PropertyData)prop.get(ITEM_DATA);
- if (propData == null)
- {
- throw new RepositoryException("FATAL Property data is null. Parent
" + data.getQPath().getAsString());
- }
+ throw new RepositoryException("FATAL Old Property data is null. Parent
" + data.getQPath().getAsString());
+ }
+ if (propData.getType() == PropertyType.REFERENCE || data.getType() ==
PropertyType.REFERENCE)
+ {
+
//get Set of old values
Set<String> removeSet = new HashSet<String>();
- for (ValueData value : propData.getValues())
+ if (propData.getType() == PropertyType.REFERENCE)
{
- try
+ for (ValueData value : propData.getValues())
{
- removeSet.add(ValueDataConvertor.readString(value));
+ try
+ {
+ removeSet.add(ValueDataConvertor.readString(value));
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ // TODO Auto-generated catch block
+ throw new RepositoryException(e.getMessage(), e);
+ }
+ catch (IOException e)
+ {
+ // TODO Auto-generated catch block
+ throw new RepositoryException(e.getMessage(), e);
+ }
}
- catch (UnsupportedEncodingException e)
- {
- // TODO Auto-generated catch block
- throw new RepositoryException(e.getMessage(), e);
- }
- catch (IOException e)
- {
- // TODO Auto-generated catch block
- throw new RepositoryException(e.getMessage(), e);
- }
}
+ // check new
Set<String> addSet = new HashSet<String>();
- // check new
- for (ValueData value : data.getValues())
+ if (data.getType() == PropertyType.REFERENCE)
{
- try
+ for (ValueData value : data.getValues())
{
- addSet.add(ValueDataConvertor.readString(value));
+ try
+ {
+ addSet.add(ValueDataConvertor.readString(value));
+ }
+ catch (UnsupportedEncodingException e)
+ {
+ // TODO Auto-generated catch block
+ throw new RepositoryException(e.getMessage(), e);
+ }
+ catch (IOException e)
+ {
+ // TODO Auto-generated catch block
+ throw new RepositoryException(e.getMessage(), e);
+ }
}
- catch (UnsupportedEncodingException e)
- {
- // TODO Auto-generated catch block
- throw new RepositoryException(e.getMessage(), e);
- }
- catch (IOException e)
- {
- // TODO Auto-generated catch block
- throw new RepositoryException(e.getMessage(), e);
- }
}
String[] added = new String[addSet.size()];
Show replies by date