[exo-jcr-commits] exo-jcr SVN: r1510 - in jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: storage/jdbc/db and 1 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Jan 20 10:34:48 EST 2010
Author: pnedonosko
Date: 2010-01-20 10:34:48 -0500 (Wed, 20 Jan 2010)
New Revision: 1510
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
Log:
EXOJCR-404 fix of sql query for Value data read; fixPropertyValue apllied for all Property reads
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2010-01-20 15:34:06 UTC (rev 1509)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/CacheableWorkspaceDataManager.java 2010-01-20 15:34:48 UTC (rev 1510)
@@ -252,34 +252,6 @@
}
}
- @Deprecated
- protected abstract class StorageTxIsolatedOperation extends TxIsolatedOperation
- {
- StorageTxIsolatedOperation()
- {
- super(transactionManager);
- }
-
- protected void beginTx() throws NotSupportedException, SystemException
- {
- super.beginTx(); // start new global tx
- cache.beginTransaction(); // TODO keep it into the cache impl
- }
-
- protected void commitTx() throws SecurityException, IllegalStateException, RollbackException,
- HeuristicMixedException, HeuristicRollbackException, SystemException
- {
- cache.commitTransaction();
- super.commitTx(); // commit global tx
- }
-
- protected void rollbackTx() throws NotSupportedException, SystemException
- {
- cache.rollbackTransaction();
- super.rollbackTx(); // rollback global tx
- }
- }
-
protected class SaveInTransaction extends TxIsolatedOperation
{
final ItemStateChangesLog changes;
@@ -406,17 +378,11 @@
*/
public List<PropertyData> getChildPropertiesData(NodeData nodeData) throws RepositoryException
{
-
List<PropertyData> childs = getChildPropertiesData(nodeData, false);
- // for (int i = 0; i < childs.size(); i++)
- // {
- // PropertyData data = childs.get(i);
- // if (data.getValues() == null)
- // {
- // // refill the property data if values invalid (null)
- // childs.set(i, fillPropertyValue(data));
- // }
- // }
+ for (PropertyData prop: childs)
+ {
+ fixPropertyValues(prop);
+ }
return childs;
}
@@ -437,33 +403,7 @@
}
else if (!data.isNode())
{
- PropertyData prop = (PropertyData)data;
- List<ValueData> vals = prop.getValues();
- for (int i = 0; i < vals.size(); i++)
- {
- ValueData vd = vals.get(i);
- if (!vd.isByteArray())
- {
- // check if file is correct
- FilePersistedValueData fpvd = (FilePersistedValueData)vd;
- if (fpvd.getFile() == null)
- {
- // need read from storage
- ValueData svd =
- getPropertyValue(prop.getIdentifier(), vd.getOrderNumber(), prop.getPersistedVersion());
-
- if (svd == null)
- {
- // error, value not found
- throw new RepositoryException("Value cannot be found in storage for cached Property "
- + prop.getQPath().getAsString() + ", orderNumb:" + vd.getOrderNumber() + ", pversion:"
- + prop.getPersistedVersion());
- }
-
- vals.set(i, vd);
- }
- }
- }
+ fixPropertyValues((PropertyData)data);
}
return data;
@@ -482,11 +422,10 @@
{
return getPersistedItemData(identifier);
}
- // else if (!data.isNode() && ((PropertyData)data).getValues() == null)
- // {
- // // refill the property data if values invalid (null)
- // data = fillPropertyValue((PropertyData)data);
- // }
+ else if (!data.isNode())
+ {
+ fixPropertyValues((PropertyData)data);
+ }
return data;
}
@@ -767,6 +706,41 @@
}
/**
+ * Fix Property BLOB Values if someone has null file (swap actually) by reading the content from the storage (VS or JDBC no matter).
+ *
+ * @param prop PropertyData
+ * @throws RepositoryException
+ */
+ protected void fixPropertyValues(PropertyData prop) throws RepositoryException
+ {
+ final List<ValueData> vals = prop.getValues();
+ for (int i = 0; i < vals.size(); i++)
+ {
+ ValueData vd = vals.get(i);
+ if (!vd.isByteArray())
+ {
+ // check if file is correct
+ FilePersistedValueData fpvd = (FilePersistedValueData)vd;
+ if (fpvd.getFile() == null)
+ {
+ // need read from storage
+ ValueData svd = getPropertyValue(prop.getIdentifier(), vd.getOrderNumber(), prop.getPersistedVersion());
+
+ if (svd == null)
+ {
+ // error, value not found
+ throw new RepositoryException("Value cannot be found in storage for cached Property "
+ + prop.getQPath().getAsString() + ", orderNumb:" + vd.getOrderNumber() + ", pversion:"
+ + prop.getPersistedVersion());
+ }
+
+ vals.set(i, vd);
+ }
+ }
+ }
+ }
+
+ /**
* Fill Property Value from persistent storage.
*
* @param prop PropertyData, original Property data
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java 2010-01-20 15:34:06 UTC (rev 1509)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/MultiDbJDBCConnection.java 2010-01-20 15:34:48 UTC (rev 1510)
@@ -183,7 +183,7 @@
FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=?";
- FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA from JCR_MVALUE where PROPERTY_ID=? and ORDER_NUM=?";
+ FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA, STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=? and ORDER_NUM=?";
FIND_NODES_BY_PARENTID = "select * from JCR_MITEM" + " where I_CLASS=1 and PARENT_ID=?" + " order by N_ORDER_NUM";
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java 2010-01-20 15:34:06 UTC (rev 1509)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/db/SingleDbJDBCConnection.java 2010-01-20 15:34:48 UTC (rev 1510)
@@ -190,7 +190,7 @@
FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=?";
- FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA from JCR_SVALUE where PROPERTY_ID=? and ORDER_NUM=?";
+ FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA, STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=? and ORDER_NUM=?";
FIND_NODES_BY_PARENTID =
"select * from JCR_SITEM" + " where I_CLASS=1 and CONTAINER_NAME=? and PARENT_ID=?" + " order by N_ORDER_NUM";
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java 2010-01-20 15:34:06 UTC (rev 1509)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/MultiDbJDBCConnection.java 2010-01-20 15:34:48 UTC (rev 1510)
@@ -198,7 +198,7 @@
FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=?";
- FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA from JCR_MVALUE where PROPERTY_ID=? and ORDER_NUM=?";
+ FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA, STORAGE_DESC from JCR_MVALUE where PROPERTY_ID=? and ORDER_NUM=?";
FIND_NODES_BY_PARENTID = "select * from JCR_MITEM" + " where I_CLASS=1 and PARENT_ID=?" + " order by N_ORDER_NUM";
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java 2010-01-20 15:34:06 UTC (rev 1509)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SingleDbJDBCConnection.java 2010-01-20 15:34:48 UTC (rev 1510)
@@ -205,7 +205,7 @@
FIND_VALUES_VSTORAGE_DESC_BY_PROPERTYID = "select distinct STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=?";
- FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA from JCR_SVALUE where PROPERTY_ID=? and ORDER_NUM=?";
+ FIND_VALUE_BY_PROPERTYID_OREDERNUMB = "select DATA, STORAGE_DESC from JCR_SVALUE where PROPERTY_ID=? and ORDER_NUM=?";
FIND_NODES_BY_PARENTID =
"select * from JCR_SITEM" + " where I_CLASS=1 and CONTAINER_NAME=? and PARENT_ID=?" + " order by N_ORDER_NUM";
More information about the exo-jcr-commits
mailing list