Author: fhanik
Date: Wed May  3 11:55:20 2006
New Revision: 399383

URL: http://svn.apache.org/viewcvs?rev=399383&view=rev
Log:
Don't pass start levels down that are not valid for the bottom components.
This way, interceptors can add own their own start/stop levels, and the bottom 
layer would be 
unaffected. 

Modified:
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java

Modified: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java
URL: 
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java?rev=399383&r1=399382&r2=399383&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java
 (original)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/ChannelCoordinator.java
 Wed May  3 11:55:20 2006
@@ -120,7 +120,11 @@
     protected synchronized void internalStart(int svc) throws ChannelException 
{
         try {
             boolean valid = false;
-            if (startLevel == Channel.DEFAULT) return;
+            //make sure we don't pass down any flags that are unrelated to the 
bottom layer
+            svc = svc & Channel.DEFAULT;
+
+            if (startLevel == Channel.DEFAULT) return; //we have already 
started up all components
+            if (svc == 0 ) return;//nothing to start
 
             //must start the receiver first so that we can coordinate the port 
it
             //listens to with the local membership settings
@@ -144,7 +148,8 @@
             if ( Channel.MBR_TX_SEQ==(svc & Channel.MBR_TX_SEQ) ) {
                 membershipService.start(MembershipService.MBR_TX);
                 valid = true;
-            }            
+            }
+            
             if ( !valid) {
                 throw new IllegalArgumentException("Invalid start level, valid 
levels are:SND_RX_SEQ,SND_TX_SEQ,MBR_TX_SEQ,MBR_RX_SEQ");
             }
@@ -169,8 +174,13 @@
      */
     protected synchronized void internalStop(int svc) throws ChannelException {
         try {
+            //make sure we don't pass down any flags that are unrelated to the 
bottom layer
+            svc = svc & Channel.DEFAULT;
+
+            if (startLevel == 0) return; //we have already stopped up all 
components
+            if (svc == 0 ) return;//nothing to stop
+
             boolean valid = false;
-            if ( startLevel == 0 ) return;
             if ( Channel.SND_RX_SEQ==(svc & Channel.SND_RX_SEQ) ) {
                 clusterReceiver.stop();
                 clusterReceiver.setMessageListener(null);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to