From 62b7425361fdad1be30d99d53ab2d467e441a1a6 Mon Sep 17 00:00:00 2001 From: Britt Park Date: Sat, 24 Jun 2006 02:07:16 +0000 Subject: [PATCH] Checkpoint that fixes some problems I introduced in my last checkin. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3230 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/avm/PlainDirectoryNodeImpl.java | 3 ++- .../repo/avm/hibernate/HibernateTxn.java | 26 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java index d769282203..762ca933cd 100644 --- a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java +++ b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java @@ -61,12 +61,14 @@ class PlainDirectoryNodeImpl extends DirectoryNodeImpl implements PlainDirectory super(repos.getSuperRepository().issueID(), repos); Session sess = repos.getSuperRepository().getSession(); sess.save(this); + sess.flush(); for (ChildEntry child : other.getChildren()) { ChildEntry newChild = new ChildEntryImpl(child.getName(), this, child.getChild()); sess.save(newChild); + sess.flush(); } } @@ -182,7 +184,6 @@ class PlainDirectoryNodeImpl extends DirectoryNodeImpl implements PlainDirectory { Session sess = SuperRepository.GetInstance().getSession(); // sess.lock(this, LockMode.UPGRADE); - sess.flush(); ChildEntry entry = new ChildEntryImpl(name, this, node); ChildEntry existing = (ChildEntry)sess.get(ChildEntryImpl.class, (Serializable)entry); if (existing != null) diff --git a/source/java/org/alfresco/repo/avm/hibernate/HibernateTxn.java b/source/java/org/alfresco/repo/avm/hibernate/HibernateTxn.java index a0ad44110c..1d1345dbde 100644 --- a/source/java/org/alfresco/repo/avm/hibernate/HibernateTxn.java +++ b/source/java/org/alfresco/repo/avm/hibernate/HibernateTxn.java @@ -21,6 +21,7 @@ import java.util.Random; import java.util.concurrent.locks.ReentrantReadWriteLock; import org.alfresco.repo.avm.AVMException; +import org.hibernate.FlushMode; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; @@ -87,6 +88,7 @@ public class HibernateTxn } */ sess = fSessionFactory.openSession(); + sess.setFlushMode(FlushMode.ALWAYS); txn = sess.beginTransaction(); callback.perform(sess); txn.commit(); @@ -113,22 +115,22 @@ public class HibernateTxn if (t instanceof StaleStateException) { System.err.println("Lost Race"); - StackTraceElement [] stack = t.getStackTrace(); - long threadID = Thread.currentThread().getId(); - for (StackTraceElement frame : stack) - { - System.err.println(threadID + " " + frame); - } +// StackTraceElement [] stack = t.getStackTrace(); +// long threadID = Thread.currentThread().getId(); +// for (StackTraceElement frame : stack) +// { +// System.err.println(threadID + " " + frame); +// } } else { System.err.println("Deadlock"); - StackTraceElement [] stack = t.getStackTrace(); - long threadID = Thread.currentThread().getId(); - for (StackTraceElement frame : stack) - { - System.err.println(threadID + " " + frame); - } +// StackTraceElement [] stack = t.getStackTrace(); +// long threadID = Thread.currentThread().getId(); +// for (StackTraceElement frame : stack) +// { +// System.err.println(threadID + " " + frame); +// } try { long interval;