[jboss-cvs] JBoss Messaging SVN: r2415 - trunk/src/main/org/jboss/jms/client.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Feb 24 08:47:08 EST 2007


Author: ovidiu.feodorov at jboss.com
Date: 2007-02-24 08:47:08 -0500 (Sat, 24 Feb 2007)
New Revision: 2415

Modified:
   trunk/src/main/org/jboss/jms/client/FailoverValve.java
Log:
configurable write lock attempt timeout

Modified: trunk/src/main/org/jboss/jms/client/FailoverValve.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/FailoverValve.java	2007-02-24 13:46:40 UTC (rev 2414)
+++ trunk/src/main/org/jboss/jms/client/FailoverValve.java	2007-02-24 13:47:08 UTC (rev 2415)
@@ -41,6 +41,8 @@
 
    private static final Logger log = Logger.getLogger(FailoverValve.class);
 
+   public static final long DEFAULT_ATTEMPT_TIMEOUT = 5000;
+
    // Static ---------------------------------------------------------------------------------------
 
    private static boolean trace = log.isTraceEnabled();
@@ -64,17 +66,29 @@
 
    private FailoverCommandCenter fcc;
 
+   private long writeLockAttemptTimeout;
+
    // Constructors ---------------------------------------------------------------------------------
 
    public FailoverValve()
    {
-      this(null);
+      this(null, DEFAULT_ATTEMPT_TIMEOUT);
    }
 
+   public FailoverValve(long attemptTiemout)
+   {
+      this(null, attemptTiemout);
+   }
+
+   public FailoverValve(FailoverCommandCenter fcc)
+   {
+      this(fcc, DEFAULT_ATTEMPT_TIMEOUT);
+   }
+
    /**
     * @param fcc - can be null, for an uninitialized valve.
     */
-   public FailoverValve(FailoverCommandCenter fcc)
+   public FailoverValve(FailoverCommandCenter fcc, long attemptTiemout)
    {
       this.fcc = fcc;
 
@@ -84,6 +98,8 @@
       // for the API, we just close the valve and the read lock is promoted to write lock.
       lock = new ReentrantWriterPreferenceReadWriteLock();
 
+      this.writeLockAttemptTimeout = attemptTiemout;
+
       if (trace)
       {
          stackCloses = new ThreadLocal();
@@ -153,7 +169,7 @@
 
       do
       {
-         acquired = lock.writeLock().attempt(5000);
+         acquired = lock.writeLock().attempt(writeLockAttemptTimeout);
 
          if (!acquired)
          {
@@ -211,6 +227,11 @@
       log.debug(this + " opened");
    }
 
+   public long getWriteLockAttemptTimeout()
+   {
+      return writeLockAttemptTimeout;
+   }
+
    public String toString()
    {
       return "FailoverValve[" +
@@ -231,7 +252,7 @@
     */
    private Counter getCounter()
    {
-      Counter localCounter = (Counter) counterLocal.get();
+      Counter localCounter = (Counter)counterLocal.get();
 
       if (localCounter == null)
       {
@@ -279,7 +300,7 @@
       for (Iterator iter = debugCloses.entrySet().iterator(); iter.hasNext();)
       {
          Map.Entry entry = (Map.Entry) iter.next();
-         writer.println("Thread that own a close =" + entry.getValue());
+         writer.println("Thread that owns a close =" + entry.getValue());
          writer.println("StackTrace:");
          Exception e = (Exception) entry.getKey();
          e.printStackTrace(writer);
@@ -289,7 +310,7 @@
       for (Iterator iter = debugEnters.entrySet().iterator(); iter.hasNext();)
       {
          Map.Entry entry = (Map.Entry) iter.next();
-         writer.println("Thread that own valve =" + entry.getValue());
+         writer.println("Thread that owns valve =" + entry.getValue());
          writer.println("StackTrace:");
          Exception e = (Exception) entry.getKey();
          e.printStackTrace(writer);




More information about the jboss-cvs-commits mailing list