Author: pnedonosko
Date: 2009-12-11 06:20:38 -0500 (Fri, 11 Dec 2009)
New Revision: 1002
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
Log:
EXOJCR-274 LocalWorkspaceDataManagerStub manager used directly in
TransactionableDataManager, was runtime error of method calling in JVM
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2009-12-11
10:27:59 UTC (rev 1001)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/WorkspacePersistentDataManager.java 2009-12-11
11:20:38 UTC (rev 1002)
@@ -427,11 +427,6 @@
{
PropertyData prevData = (PropertyData)prevState.getData();
- // newData =
- // new PersistedPropertyData(prevData.getIdentifier(),
prevData.getQPath(), prevData
- // .getParentIdentifier(),
prevData.getPersistedVersion() + 1, prevData.getType(), prevData
- // .isMultiValued(), prevData.getValues());
-
if (prevData.getValues() != null)
{
List<ValueData> values = new ArrayList<ValueData>();
@@ -455,12 +450,6 @@
// TODO review TransientValueData logic about spool file
and stream
values.add(new StreamPersistedValueData(destFile,
tvd.getSpoolFile(),
tvd.getSpoolFile() == null ? tvd.getAsStream(false) :
null, vd.getOrderNumber()));
-
- // {
- // throw new
RepositoryException(
- // "Unexpected stream
based ValueData implementaion on persistent level, only TransientValueData or
PersistedValueData allowed. "
- // + vd.getClass());
- // }
}
}
else
@@ -517,7 +506,7 @@
}
else if (itemState.isDeleted())
{
- doDelete(data, conn);
//conn.getChildNodesData((NodeData)conn.getItemData("7986bb30c0a800cb1610f7a03958e641"))
+ doDelete(data, conn);
//conn.getChildNodesCount((NodeData)conn.getItemData("7d4a6b5ac0a800cb78d3df421b65bf00"))
//getThisConnection()
}
else if (itemState.isRenamed())
{
Modified:
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java
===================================================================
---
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java 2009-12-11
10:27:59 UTC (rev 1001)
+++
jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/session/TransactionableDataManager.java 2009-12-11
11:20:38 UTC (rev 1002)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.session;
+import org.exoplatform.services.jcr.dataflow.CompositeChangesLog;
import org.exoplatform.services.jcr.dataflow.DataManager;
import org.exoplatform.services.jcr.dataflow.ItemState;
import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
@@ -49,7 +50,9 @@
public class TransactionableDataManager implements TransactionResource, DataManager
{
- private SharedDataManager storageDataManager;
+ // use LocalWorkspaceDataManagerStub, otherwise JVM will use save(ItemStateChangesLog
changes) instead of
+ // VersionableWorkspaceDataManager.save(CompositeChangesLog changesLog)
+ private LocalWorkspaceDataManagerStub storageDataManager;
protected static Log log =
ExoLogger.getLogger("jcr.TransactionableDataManager");
@@ -60,17 +63,17 @@
{
super();
this.storageDataManager = dataManager;
-
+
// TODO EXOJCR-272
-// try
-// {
-// this.storageDataManager = new
LocalWorkspaceStorageDataManagerProxy(dataManager, session.getValueFactory());
-// }
-// catch (Exception e1)
-// {
-// String infoString = "[Error of read value factory: " +
e1.getMessage() + "]";
-// throw new RepositoryException(infoString);
-// }
+ // try
+ // {
+ // this.storageDataManager = new
LocalWorkspaceStorageDataManagerProxy(dataManager, session.getValueFactory());
+ // }
+ // catch (Exception e1)
+ // {
+ // String infoString = "[Error of read value factory: " +
e1.getMessage() + "]";
+ // throw new RepositoryException(infoString);
+ // }
}
// --------------- ItemDataConsumer --------
@@ -125,7 +128,7 @@
throw new InvalidItemStateException("Node's child nodes were changed
in another Transaction "
+ parent.getQPath().getAsString());
}
-
+
return childsCount;
}
else
@@ -281,12 +284,19 @@
PlainChangesLog statesLog = (PlainChangesLog)changes;
if (log.isDebugEnabled())
+ {
log.debug("save() " + this + " txStarted: " + txStarted() +
"\n====== Changes ======\n"
+ (statesLog != null ? "\n" + statesLog.dump() :
"[NULL]") + "=====================");
+ }
+
if (txStarted())
+ {
transactionLog.addLog(statesLog);
+ }
else
+ {
storageDataManager.save(new TransactionChangesLog(statesLog));
+ }
}
Show replies by date