You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2007/01/07 11:43:39 UTC
svn commit: r493696 -
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
Author: rajdavies
Date: Sun Jan 7 02:43:38 2007
New Revision: 493696
URL: http://svn.apache.org/viewvc?view=rev&rev=493696
Log:
Fix for http://issues.apache.org/activemq/browse/AMQ-1117
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java
URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java?view=diff&rev=493696&r1=493695&r2=493696
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DemandForwardingBridgeSupport.java Sun Jan 7 02:43:38 2007
@@ -59,6 +59,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.security.GeneralSecurityException;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -139,7 +140,7 @@
//clear any subscriptions - to try and prevent the bridge from stalling the broker
if( remoteInterupted.compareAndSet(false, true) ) {
- log.debug("Outbound transport to " + remoteBrokerName + " interrupted.");
+ log.info("Outbound transport to " + remoteBrokerName + " interrupted.");
if( localBridgeStarted.get() ) {
clearDownSubscriptions();
@@ -180,7 +181,7 @@
startLocalBridge();
remoteBridgeStarted.set(true);
startedLatch.countDown();
- log.debug("Outbound transport to " + remoteBrokerName + " resumed");
+ log.info("Outbound transport to " + remoteBrokerName + " resumed");
}catch(Exception e) {
log.error("Caught exception from local start in resume transport",e );
}
@@ -297,39 +298,48 @@
}
}
- public void stop() throws Exception {
- log.debug(" stopping "+localBrokerName+ " bridge to " + remoteBrokerName + " is disposed already ? "+disposed);
- if (!disposed) {
- try {
- disposed = true;
-
- remoteBridgeStarted.set(false);
-
- localBroker.oneway(new ShutdownInfo());
- remoteBroker.oneway(new ShutdownInfo());
-
- } catch (IOException e) {
- log.debug("Caught exception stopping", e);
- } finally {
- ServiceStopper ss = new ServiceStopper();
- ss.stop(localBroker);
- ss.stop(remoteBroker);
- ss.throwFirstException();
- }
- }
- log.debug(localBrokerName+ " bridge to " + remoteBrokerName + " stopped");
+ public void stop() throws Exception{
+ log.debug(" stopping "+localBrokerName+" bridge to "+remoteBrokerName+" is disposed already ? "+disposed);
+ boolean wasDisposedAlready=disposed;
+ if(!disposed){
+ try{
+ disposed=true;
+ remoteBridgeStarted.set(false);
+ localBroker.oneway(new ShutdownInfo());
+ remoteBroker.oneway(new ShutdownInfo());
+ }catch(IOException e){
+ log.info("Caught exception stopping",e);
+ }finally{
+ ServiceStopper ss=new ServiceStopper();
+ ss.stop(localBroker);
+ ss.stop(remoteBroker);
+ ss.throwFirstException();
+ }
+ }
+ if(wasDisposedAlready){
+ log.debug(localBrokerName+" bridge to "+remoteBrokerName+" stopped");
+ }else{
+ log.info(localBrokerName+" bridge to "+remoteBrokerName+" stopped");
+ }
}
- protected void serviceRemoteException(Throwable error) {
- if( !disposed ) {
- log.info("Network connection between "+localBroker+" and "+remoteBroker+" shutdown due to a remote error: "+error);
- log.debug("The remote Exception was: "+error, error);
- new Thread() {
- public void run() {
- ServiceSupport.dispose(DemandForwardingBridgeSupport.this);
- }
- }.start();
- }
+ protected void serviceRemoteException(Throwable error){
+ if(!disposed){
+ if(error instanceof SecurityException||error instanceof GeneralSecurityException){
+ log.error("Network connection between "+localBroker+" and "+remoteBroker
+ +" shutdown due to a remote error: "+error);
+ }else{
+ log.warn("Network connection between "+localBroker+" and "+remoteBroker
+ +" shutdown due to a remote error: "+error);
+ }
+ log.debug("The remote Exception was: "+error,error);
+ new Thread(){
+
+ public void run(){
+ ServiceSupport.dispose(DemandForwardingBridgeSupport.this);
+ }
+ }.start();
+ }
}
protected void serviceRemoteCommand(Command command) {