You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jl...@apache.org on 2006/09/14 09:19:18 UTC
svn commit: r443273 - in
/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq:
broker/AbstractConnection.java broker/TransportConnection.java
transport/tcp/TcpTransport.java
Author: jlim
Date: Thu Sep 14 00:19:17 2006
New Revision: 443273
URL: http://svn.apache.org/viewvc?view=rev&rev=443273
Log:
fixed for http://issues.apache.org/activemq/browse/AMQ-918
Modified:
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java
incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
Modified: incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java?view=diff&rev=443273&r1=443272&r2=443273
==============================================================================
--- incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java (original)
+++ incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/AbstractConnection.java Thu Sep 14 00:19:17 2006
@@ -95,6 +95,7 @@
private WireFormatInfo wireFormatInfo;
protected boolean disposed=false;
+ protected IOException transportException;
static class ConnectionState extends org.apache.activemq.state.ConnectionState {
private final ConnectionContext context;
@@ -175,6 +176,7 @@
public void serviceTransportException(IOException e) {
if( !disposed ) {
+ transportException = e;
if( transportLog.isDebugEnabled() )
transportLog.debug("Transport failed: "+e,e);
ServiceSupport.dispose(this);
Modified: incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java?view=diff&rev=443273&r1=443272&r2=443273
==============================================================================
--- incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java (original)
+++ incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/broker/TransportConnection.java Thu Sep 14 00:19:17 2006
@@ -22,13 +22,11 @@
import org.apache.activemq.broker.ft.MasterBroker;
import org.apache.activemq.command.BrokerInfo;
import org.apache.activemq.command.Command;
-import org.apache.activemq.command.MessageDispatch;
import org.apache.activemq.command.Response;
import org.apache.activemq.command.ShutdownInfo;
import org.apache.activemq.thread.TaskRunnerFactory;
import org.apache.activemq.transport.DefaultTransportListener;
import org.apache.activemq.transport.Transport;
-import org.apache.activemq.transport.TransportListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -85,7 +83,12 @@
if (masterBroker != null){
masterBroker.stop();
}
- transport.oneway(new ShutdownInfo());
+
+ // If the transport has not failed yet,
+ // notify the peer that we are doing a normal shutdown.
+ if( transportException == null ) {
+ transport.oneway(new ShutdownInfo());
+ }
} catch (Exception ignore) {
//ignore.printStackTrace();
}
Modified: incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java
URL: http://svn.apache.org/viewvc/incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java?view=diff&rev=443273&r1=443272&r2=443273
==============================================================================
--- incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java (original)
+++ incubator/activemq/branches/activemq-4.0/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java Thu Sep 14 00:19:17 2006
@@ -281,7 +281,9 @@
}
protected void doStop(ServiceStopper stopper) throws Exception {
- closeStreams();
+ // Closing the streams flush the sockets before closing.. if the socket
+ // is hung.. then this hangs the close.
+ // closeStreams();
if (socket != null) {
socket.close();
}