[jboss-svn-commits] JBL Code SVN: r30942 - labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 5 13:12:27 EST 2010
Author: whitingjr
Date: 2010-01-05 13:12:27 -0500 (Tue, 05 Jan 2010)
New Revision: 30942
Modified:
labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java
Log:
Modified to notify the barrier when failure occurs.
Modified: labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java 2010-01-05 18:11:47 UTC (rev 30941)
+++ labs/jbosstm/workspace/whitingjr/trunk/performance/src/test/java/org/jboss/jbossts/performance/resource/SynchronizeTask.java 2010-01-05 18:12:27 UTC (rev 30942)
@@ -1,6 +1,6 @@
package org.jboss.jbossts.performance.resource;
-import java.util.concurrent.CyclicBarrier;
+ import java.util.concurrent.CyclicBarrier;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
@@ -17,21 +17,31 @@
import auction.dao.ejb3.persistence.UserDAOBeanMultiResource;
import auction.model.User;
+/**
+ * This is the task that will.
+ * A SynchronizeTask.
+ *
+ * @author <a href="jwhiting at redhat.com">Jeremy Whiting</a>
+ * @version $Revision: 1.1 $
+ */
public class SynchronizeTask implements Runnable
{
private final EntityManagerFactory emfA;
private final EntityManagerFactory emfB;
- private final boolean isOptionalWriteEnabled = false;
+ private final boolean isOptionalWriteEnabled;
private final int recurseCount;
private final static Logger logger = Logger.getLogger(SynchronizeTask.class);
private final CyclicBarrier completionBarrier;
+ private final Long threadId;
- public SynchronizeTask(final EntityManagerFactory factoryA, final EntityManagerFactory factoryB, final int count, final CyclicBarrier barrier)
+ public SynchronizeTask(final EntityManagerFactory factoryA, final EntityManagerFactory factoryB, final int count, final CyclicBarrier barrier, final int id, final boolean isWEnabled)
{
this.emfA = factoryA;
this.emfB = factoryB;
this.recurseCount = count;
this.completionBarrier = barrier;
+ this.threadId = new Long(id);
+ this.isOptionalWriteEnabled = isWEnabled;
}
@Override
public void run()
@@ -40,7 +50,10 @@
{
this.completionBarrier.await();// await all threads ready to start
recurse(this.recurseCount);
- this.completionBarrier.await();// await all threads have finished
+ if (!this.completionBarrier.isBroken())
+ {// fall out of thread without waiting.
+ this.completionBarrier.await();// await all threads have finished
+ }
}
catch (Exception e)
{
@@ -60,11 +73,9 @@
TransactionLocal session = new TransactionLocal();
transaction.registerSynchronization(new SessionSynchronization(emA, transaction, true));
-
transaction.registerSynchronization(new SessionSynchronization( emB, transaction, true ) );
- session.set(emB);
- emB.joinTransaction();
+ //emB.joinTransaction();
/**
* A read
@@ -77,15 +88,17 @@
userDAO_B.setEntityManagerB(emB);
// Prepare a user object
- User user = userDAO_A.findById(1l, false);
+ User user = userDAO_A.findById(this.threadId, false);
long time = System.currentTimeMillis();
+ session.set(emA);
if (this.isOptionalWriteEnabled)
{
user.setFirstname("Ben"+time);
}
+ session.set(emB);
// Don't forget to take the return value, this is basically a merge()
- User userB = userDAO_B.findById(1l, false);
+ User userB = userDAO_B.findById(this.threadId, false);
userB.setFirstname("Ben"+time);
emA.flush();
emB.flush();
@@ -96,10 +109,14 @@
}
catch (HibernateException e) {
Assert.fail(e.getMessage());
+ this.completionBarrier.reset();
+ throw e;
}
catch (PersistenceException pe)
{
- Assert.fail(pe.getMessage());
+ Assert.fail(pe.getMessage());
+ this.completionBarrier.reset();
+ throw pe;
}
finally
{
@@ -123,6 +140,7 @@
}
} catch (Exception e)
{
+ this.completionBarrier.reset();
Assert.fail(e.getMessage(), e);
}
}
More information about the jboss-svn-commits
mailing list