mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
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
This commit is contained in:
@@ -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)
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user