[jboss-cvs] JBoss Messaging SVN: r1997 - in trunk/src/main/org/jboss/jms: server/endpoint and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jan 19 15:05:13 EST 2007


Author: clebert.suconic at jboss.com
Date: 2007-01-19 15:05:13 -0500 (Fri, 19 Jan 2007)
New Revision: 1997

Modified:
   trunk/src/main/org/jboss/jms/client/remoting/ConnectionFactoryCallbackHandler.java
   trunk/src/main/org/jboss/jms/server/endpoint/ConnectionFactoryUpdateMessage.java
   trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java
Log:
Fixing CF update after refactoring

Modified: trunk/src/main/org/jboss/jms/client/remoting/ConnectionFactoryCallbackHandler.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/remoting/ConnectionFactoryCallbackHandler.java	2007-01-19 20:03:57 UTC (rev 1996)
+++ trunk/src/main/org/jboss/jms/client/remoting/ConnectionFactoryCallbackHandler.java	2007-01-19 20:05:13 UTC (rev 1997)
@@ -55,18 +55,17 @@
    public ConnectionFactoryCallbackHandler(ClientConnectionDelegate connectionDelegate)
    {
       this.connectionDelegate = connectionDelegate;
-      this.state = (ConnectionState)connectionDelegate.getState();
    }
 
    // CallbackHandler implementation ---------------------------------------------------------------
 
    public void handleMessage(Object message)
    {
-      if (trace) { log.trace(this + " handling " + message); }
+      log.info(this + " handling " + message);
 
       ConnectionFactoryUpdateMessage viewChange = (ConnectionFactoryUpdateMessage)message;
 
-      Object d = state.getClusteredConnectionFactoryDelegate();
+      Object d = getState().getClusteredConnectionFactoryDelegate();
 
       if (d instanceof ClientClusteredConnectionFactoryDelegate)
       {
@@ -89,6 +88,17 @@
 
    // Protected ------------------------------------------------------------------------------------
 
+   // When ConnectionFactoryCallbackHandler is created, is not guaranteed that state is set
+   // as this could be later initialized by the aop stack
+   protected ConnectionState getState()
+   {
+      if (state==null)
+      {
+         this.state = (ConnectionState)connectionDelegate.getState();
+      }
+      return this.state;
+   }
+
    // Private --------------------------------------------------------------------------------------
 
    // Inner classes --------------------------------------------------------------------------------

Modified: trunk/src/main/org/jboss/jms/server/endpoint/ConnectionFactoryUpdateMessage.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ConnectionFactoryUpdateMessage.java	2007-01-19 20:03:57 UTC (rev 1996)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ConnectionFactoryUpdateMessage.java	2007-01-19 20:05:13 UTC (rev 1997)
@@ -93,7 +93,7 @@
          }
       }
 
-      sb.append("]");
+      sb.append("] size = " + delegates.length);
 
       return sb.toString();
    }

Modified: trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java	2007-01-19 20:03:57 UTC (rev 1996)
+++ trunk/src/main/org/jboss/jms/server/endpoint/ServerConnectionFactoryEndpoint.java	2007-01-19 20:05:13 UTC (rev 1997)
@@ -239,9 +239,6 @@
 
       List activeConnections = serverPeer.getConnectionManager().getActiveConnections();
 
-      log.info(this + " sending updated cluster view to " +
-         activeConnections.size() + " active connections.");
-
       ConnectionFactoryUpdateMessage message =
          new ConnectionFactoryUpdateMessage(delegates, failoverMap);
 
@@ -251,16 +248,19 @@
       {
          ServerConnectionEndpoint connEndpoint = (ServerConnectionEndpoint)i.next();
 
-         log.debug(this + " sending cluster view update to " + connEndpoint);
+         if (connEndpoint.getConnectionFactoryEndpoint() == this)
+         {
+            log.debug(this + " sending cluster view update to " + connEndpoint);
 
-         try
-         {
-            connEndpoint.getCallbackHandler().handleCallback(callback);
+            try
+            {
+               connEndpoint.getCallbackHandler().handleCallback(callback);
+            }
+            catch (Exception e)
+            {
+               log.error("Callback failed on connection " + connEndpoint, e);
+            }
          }
-         catch (Exception e)
-         {
-            log.error("Callback failed on connection " + connEndpoint, e);
-         }
       }
    }
 




More information about the jboss-cvs-commits mailing list