Author: chirino
Date: Sat Jul 1 12:03:00 2006
New Revision: 418497
URL: http://svn.apache.org/viewvc?rev=418497&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQ-789
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/WireFormatNegotiator.java
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/WireFormatNegotiator.java
URL:
http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/WireFormatNegotiator.java?rev=418497&r1=418496&r2=418497&view=diff
==============================================================================
---
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/WireFormatNegotiator.java
(original)
+++
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/WireFormatNegotiator.java
Sat Jul 1 12:03:00 2006
@@ -26,6 +26,7 @@
import org.apache.commons.logging.LogFactory;
import edu.emory.mathcs.backport.java.util.concurrent.CountDownLatch;
+import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicBoolean;
@@ -35,6 +36,7 @@
private OpenWireFormat wireFormat;
private final int minimumVersion;
+ private long negotiateTimeout=15000;
private final AtomicBoolean firstStart=new AtomicBoolean(true);
private final CountDownLatch readyCountDownLatch = new CountDownLatch(1);
@@ -70,7 +72,8 @@
public void oneway(Command command) throws IOException {
try {
- readyCountDownLatch.await();
+ if( !readyCountDownLatch.await(negotiateTimeout,
TimeUnit.MILLISECONDS) )
+ throw new IOException("Wire format negociation timeout: peer
did not send his wire format.");
} catch (InterruptedException e) {
throw new InterruptedIOException();
}
@@ -130,4 +133,13 @@
protected void onWireFormatNegotiated(WireFormatInfo info) {
}
+
+
+ public long getNegotiateTimeout() {
+ return negotiateTimeout;
+ }
+
+ public void setNegotiateTimeout(long negotiateTimeout) {
+ this.negotiateTimeout = negotiateTimeout;
+ }
}