[jboss-cvs] JBoss Messaging SVN: r7551 - trunk/src/main/org/jboss/messaging/integration/transports/netty.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jul 9 10:39:05 EDT 2009


Author: jmesnil
Date: 2009-07-09 10:39:05 -0400 (Thu, 09 Jul 2009)
New Revision: 7551

Modified:
   trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpKeepAliveTask.java
   trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnector.java
Log:
make sure HTTP TimerTasks can not be run after they have been canceled

Modified: trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpKeepAliveTask.java
===================================================================
--- trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpKeepAliveTask.java	2009-07-09 13:59:37 UTC (rev 7550)
+++ trunk/src/main/org/jboss/messaging/integration/transports/netty/HttpKeepAliveTask.java	2009-07-09 14:39:05 UTC (rev 7551)
@@ -32,9 +32,15 @@
 public class HttpKeepAliveTask extends TimerTask
 {
    private final List<HttpAcceptorHandler> handlers = new ArrayList<HttpAcceptorHandler>();
+   private boolean closed = false;
 
    public synchronized void run()
    {
+      if (closed)
+      {
+         return;
+      }
+      
       long time = System.currentTimeMillis();
       for (HttpAcceptorHandler handler : handlers)
       {
@@ -54,6 +60,8 @@
 
    public synchronized boolean cancel()
    {
+      closed  = true;
+
       return super.cancel();
    }
 }

Modified: trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnector.java
===================================================================
--- trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnector.java	2009-07-09 13:59:37 UTC (rev 7550)
+++ trunk/src/main/org/jboss/messaging/integration/transports/netty/NettyConnector.java	2009-07-09 14:39:05 UTC (rev 7551)
@@ -544,10 +544,15 @@
 
       private class HttpIdleTimerTask extends TimerTask
       {
-         long currentTime = System.currentTimeMillis();
+         private boolean closed = false;
 
          public synchronized void run()
          {
+            if (closed)
+            {
+               return;
+            }
+            
             if (!waitingGet && System.currentTimeMillis() > lastSendTime + httpMaxClientIdleTime)
             {
                HttpRequest httpRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, url);
@@ -558,6 +563,8 @@
 
          public synchronized boolean cancel()
          {
+            closed  = true;
+
             return super.cancel();
          }
       }




More information about the jboss-cvs-commits mailing list