activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jgo...@apache.org
Subject svn commit: r662856 - in /activemq/activemq-dotnet: Apache.NMS.ActiveMQ/trunk/src/main/csharp/ Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/ Apache.NMS.ActiveMQ/trunk/src/sandbox/alternati...
Date Tue, 03 Jun 2008 18:36:18 GMT
Author: jgomes
Date: Tue Jun  3 11:36:18 2008
New Revision: 662856

URL: http://svn.apache.org/viewvc?rev=662856&view=rev
Log:
Refactor the transport request API to include optional timeout value on a single-call basis
without changing the default timeout.  Also including patch contribution from Anthony Enache
for [AMQNET-87].
Fixes [AMQNET-87,89]. (See https://issues.apache.org/activemq/browse/AMQNET-87,89)

Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Dispatcher.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/FutureResponse.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ITransport.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/MutexTransport.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ResponseCorrelator.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/TransportFilter.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/WireFormatNegotiator.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/sandbox/alternative-threading/FutureResponse.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/Util/CountDownLatch.cs

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs Tue Jun
 3 11:36:18 2008
@@ -36,6 +36,7 @@
 		private WireFormatInfo brokerWireFormatInfo; // from broker
 		private readonly IList sessions = ArrayList.Synchronized(new ArrayList());
 		private bool asyncSend = false;
+		private bool asyncClose = true;
 		private bool connected = false;
 		private bool closed = false;
 		private bool closing = false;
@@ -62,7 +63,6 @@
 
 		public event ExceptionListener ExceptionListener;
 
-
 		#region Properties
 
 		/// <summary>
@@ -75,6 +75,18 @@
 		}
 
 		/// <summary>
+		/// This property indicates whether or not async close is enabled.
+		/// When the connection is closed, it will either send a synchronous
+		/// DisposeOf command to the broker and wait for confirmation (if true),
+		/// or it will send the DisposeOf command asynchronously.
+		/// </summary>
+		public bool AsyncClose
+		{
+			get { return asyncClose; }
+			set { asyncClose = value; }
+		}
+
+		/// <summary>
 		/// This property sets the acknowledgment mode for the connection.
 		/// The URI parameter connection.ackmode can be set to a string value
 		/// that maps to the enumeration value.
@@ -280,10 +292,17 @@
 		/// <summary>
 		/// Performs a synchronous request-response with the broker
 		/// </summary>
+		/// 
+
 		public Response SyncRequest(Command command)
 		{
+			return SyncRequest(command, transport.RequestTimeout);
+		}
+
+		public Response SyncRequest(Command command, TimeSpan requestTimeout)
+		{
 			CheckConnected();
-			Response response = transport.Request(command);
+			Response response = transport.Request(command, requestTimeout);
 			if(response is ExceptionResponse)
 			{
 				ExceptionResponse exceptionResponse = (ExceptionResponse) response;
@@ -303,10 +322,24 @@
 		{
 			RemoveInfo command = new RemoveInfo();
 			command.ObjectId = objectId;
-			// Ensure that the object is disposed to avoid potential race-conditions
-			// of trying to re-create the same object in the broker faster than
-			// the broker can dispose of the object.
-			SyncRequest(command);
+			if(asyncClose)
+			{
+				OneWay(command);
+			}
+			else
+			{
+				// Ensure that the object is disposed to avoid potential race-conditions
+				// of trying to re-create the same object in the broker faster than
+				// the broker can dispose of the object.  Allow up to 5 seconds to process.
+				try
+				{
+					SyncRequest(command, TimeSpan.FromSeconds(5));
+				}
+				catch // (BrokerException)
+				{
+					// Ignore exceptions while shutting down.
+				}
+			}
 		}
 
 		/// <summary>

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Dispatcher.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Dispatcher.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Dispatcher.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Dispatcher.cs Tue Jun
 3 11:36:18 2008
@@ -133,7 +133,7 @@
 
             while (!bClosed && rc == null)
             {
-                if( !messageReceivedEventHandle.WaitOne((int) timeout.TotalMilliseconds,
false))
+                if( !messageReceivedEventHandle.WaitOne(timeout, false))
                 {
                     break;
                 }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/FutureResponse.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/FutureResponse.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/FutureResponse.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/FutureResponse.cs
Tue Jun  3 11:36:18 2008
@@ -22,15 +22,13 @@
 
 namespace Apache.NMS.ActiveMQ.Transport
 {
-
 	/// <summary>
 	/// Handles asynchronous responses
 	/// </summary>
 	public class FutureResponse
 	{
-
-		private static int maxWait = -1;
-		public int Timeout
+		private static TimeSpan maxWait = TimeSpan.FromMilliseconds(Timeout.Infinite);
+		public TimeSpan ResponseTimeout
 		{
 			get { return maxWait; }
 			set { maxWait = value; }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ITransport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ITransport.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ITransport.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ITransport.cs
Tue Jun  3 11:36:18 2008
@@ -31,15 +31,24 @@
         void Oneway(Command command);
         
         FutureResponse AsyncRequest(Command command);
-        
+
+		TimeSpan RequestTimeout
+		{
+			get;
+			set;
+		}
+
         Response Request(Command command);
+		Response Request(Command command, TimeSpan timeout);
         
-        CommandHandler Command {
+        CommandHandler Command
+		{
             get;
             set;
         }
 		
-        ExceptionHandler Exception {
+        ExceptionHandler Exception
+		{
             get;
             set;
         }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/MutexTransport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/MutexTransport.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/MutexTransport.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/MutexTransport.cs
Tue Jun  3 11:36:18 2008
@@ -20,22 +20,20 @@
 
 namespace Apache.NMS.ActiveMQ.Transport
 {
-	
     /// <summary>
-    /// A Transport which gaurds access to the next transport using a mutex.
+    /// A Transport which guards access to the next transport using a mutex.
     /// </summary>
     public class MutexTransport : TransportFilter
     {
-
         private readonly object transmissionLock = new object();
 
-        public MutexTransport(ITransport next) : base(next) {
+        public MutexTransport(ITransport next) : base(next)
+		{
         }
-
         
         public override void Oneway(Command command)
         {
-            lock (transmissionLock)
+            lock(transmissionLock)
             {
                 this.next.Oneway(command);
             }
@@ -43,28 +41,26 @@
 
         public override FutureResponse AsyncRequest(Command command)
         {
-            lock (transmissionLock)
+            lock(transmissionLock)
             {
                 return base.AsyncRequest(command);
             }
         }
 
-        public override Response Request(Command command)
-        {
-            lock (transmissionLock)
-            {
-                return base.Request(command);
-            }
-        }
+		public override Response Request(Command command, TimeSpan timeout)
+		{
+			lock(transmissionLock)
+			{
+				return base.Request(command, timeout);
+			}
+		}
 
-        public override void Dispose()
+		public override void Dispose()
         {
-            lock (transmissionLock)
+            lock(transmissionLock)
             {
                 base.Dispose();
             }
         }
-
     }
 }
-

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ResponseCorrelator.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ResponseCorrelator.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ResponseCorrelator.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/ResponseCorrelator.cs
Tue Jun  3 11:36:18 2008
@@ -24,84 +24,101 @@
 
 namespace Apache.NMS.ActiveMQ.Transport
 {
-	
-    /// <summary>
-    /// A Transport which gaurds access to the next transport using a mutex.
-    /// </summary>
-    public class ResponseCorrelator : TransportFilter
-    {
+	/// <summary>
+	/// A Transport that correlates asynchronous send/receive messages into single request/response.
+	/// </summary>
+	public class ResponseCorrelator : TransportFilter
+	{
 		private readonly IDictionary requestMap = Hashtable.Synchronized(new Hashtable());
 		private readonly Object mutex = new Object();
-        private short nextCommandId;
-        private int requestTimeout = -1;
+		private short nextCommandId;
 
-        public ResponseCorrelator(ITransport next, int requestTimeout) : base(next)
+		public ResponseCorrelator(ITransport next) : base(next)
 		{
-			this.requestTimeout = requestTimeout;
-        }
+		}
 
-        short GetNextCommandId()
+		protected override void OnException(ITransport sender, Exception command)
 		{
-            lock(mutex)
+			base.OnException(sender, command);
+
+			foreach(DictionaryEntry entry in requestMap)
+			{
+				FutureResponse value = (FutureResponse) entry.Value;
+				ExceptionResponse response = new ExceptionResponse();
+				BrokerError error = new BrokerError();
+
+				error.Message = command.Message;
+				response.Exception = error;
+				value.Response = response;
+			}
+
+			requestMap.Clear();
+		}
+
+		short GetNextCommandId()
+		{
+			lock(mutex)
 			{
-                return ++nextCommandId;
-            }
-        }
+				return ++nextCommandId;
+			}
+		}
 
-        public override void Oneway(Command command)
-        {
+		public override void Oneway(Command command)
+		{
 			int commandId = GetNextCommandId();
 
-            command.CommandId = commandId;
-            command.ResponseRequired = false;
-            next.Oneway(command);
-        }
+			command.CommandId = commandId;
+			command.ResponseRequired = false;
+			next.Oneway(command);
+		}
 
-        public override FutureResponse AsyncRequest(Command command)
-        {
+		public override FutureResponse AsyncRequest(Command command)
+		{
 			int commandId = GetNextCommandId();
 
-        	command.CommandId = commandId;
-            command.ResponseRequired = true;
-            FutureResponse future = new FutureResponse();
-            requestMap[commandId] = future;
+			command.CommandId = commandId;
+			command.ResponseRequired = true;
+			FutureResponse future = new FutureResponse();
+			requestMap[commandId] = future;
 			next.Oneway(command);
-            return future;
+			return future;
 
-        }
+		}
+
+		public override Response Request(Command command, TimeSpan timeout)
+		{
+			FutureResponse future = AsyncRequest(command);
+			future.ResponseTimeout = timeout;
+			Response response = future.Response;
+
+			if(response != null && response is ExceptionResponse)
+			{
+				ExceptionResponse er = (ExceptionResponse) response;
+				BrokerError brokerError = er.Exception;
 
-        public override Response Request(Command command)
-        {
-            FutureResponse future = AsyncRequest(command);
-            future.Timeout = requestTimeout;
-            Response response = future.Response;
-            if (response != null && response is ExceptionResponse)
-            {
-                ExceptionResponse er = (ExceptionResponse) response;
-                BrokerError brokerError = er.Exception;
 				if (brokerError == null)
 				{
-	                throw new BrokerException();
+					throw new BrokerException();
 				}
 				else
 				{
-	                throw new BrokerException(brokerError);
+					throw new BrokerException(brokerError);
 				}
-            }
-            return response;
-        }
-
-        protected override void OnCommand(ITransport sender, Command command)
-        {
-            if(command is Response)
+			}
+
+			return response;
+		}
+
+		protected override void OnCommand(ITransport sender, Command command)
+		{
+			if(command is Response)
 			{
-                Response response = (Response) command;
+				Response response = (Response) command;
 				int correlationId = response.CorrelationId;
-
 				FutureResponse future = (FutureResponse) requestMap[correlationId];
-                
+				
 				if(future != null)
-                {
+				{
 					requestMap.Remove(correlationId);
 					future.Response = response;
 
@@ -117,17 +134,18 @@
 				{
 					Tracer.Error("Unknown response ID: " + response.CommandId + " for response: " + response);
 				}
-            }
-            else if(command is ShutdownInfo)
-            {
-                // lets shutdown
-                this.commandHandler(sender, command);
-            }
+			}
+			else if(command is ShutdownInfo)
+			{
+				// lets shutdown
+				this.commandHandler(sender, command);
+			}
 			else
 			{
-                this.commandHandler(sender, command);
-            }
-        }
-    }
+				this.commandHandler(sender, command);
+			}
+		}
+	}
 }
 
+

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransport.cs
Tue Jun  3 11:36:18 2008
@@ -39,6 +39,7 @@
 		private Thread readThread;
         private bool started;
         private Util.AtomicBoolean closed = new Util.AtomicBoolean(false);
+		private TimeSpan maxWait = TimeSpan.FromMilliseconds(Timeout.Infinite);
         
         private CommandHandler commandHandler;
         private ExceptionHandler exceptionHandler;
@@ -137,13 +138,27 @@
         {
             throw new NotImplementedException("Use a ResponseCorrelator if you want to issue
AsyncRequest calls");
         }
-        
-        public Response Request(Command command)
+
+		/// <summary>
+		/// Property RequestTimeout
+		/// </summary>
+		public TimeSpan RequestTimeout
+		{
+			get { return this.maxWait; }
+			set { this.maxWait = value; }
+		}
+
+		public Response Request(Command command)
         {
             throw new NotImplementedException("Use a ResponseCorrelator if you want to issue
Request calls");
         }
 
-        public void Close()
+		public Response Request(Command command, TimeSpan timeout)
+		{
+			throw new NotImplementedException("Use a ResponseCorrelator if you want to issue Request
calls");
+		}
+		
+		public void Close()
         {
 			if(closed.CompareAndSet(false, true))
 			{

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/Tcp/TcpTransportFactory.cs
Tue Jun  3 11:36:18 2008
@@ -23,6 +23,7 @@
 using Apache.NMS.ActiveMQ.Transport.Stomp;
 using Apache.NMS;
 using Apache.NMS.Util;
+using System.Threading;
 
 namespace Apache.NMS.ActiveMQ.Transport.Tcp
 {
@@ -48,11 +49,11 @@
 			set { wireFormat = value; }
 		}
 
-		private int requestTimeout = -1;
+		private TimeSpan requestTimeout = TimeSpan.FromMilliseconds(Timeout.Infinite);
 		public int RequestTimeout
 		{
-			get { return requestTimeout; }
-			set { requestTimeout = value; }
+			get { return (int) requestTimeout.TotalMilliseconds; }
+			set { requestTimeout = TimeSpan.FromMilliseconds(value); }
 		}
 
 		#endregion
@@ -85,7 +86,8 @@
 			}
 
 			transport = new MutexTransport(transport);
-			transport = new ResponseCorrelator(transport, requestTimeout);
+			transport = new ResponseCorrelator(transport);
+			transport.RequestTimeout = this.requestTimeout;
 
 			return transport;
 		}

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/TransportFilter.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/TransportFilter.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/TransportFilter.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/TransportFilter.cs
Tue Jun  3 11:36:18 2008
@@ -20,7 +20,6 @@
 
 namespace Apache.NMS.ActiveMQ.Transport
 {
-	
 	/// <summary>
 	/// Used to implement a filter on the transport layer.
 	/// </summary>
@@ -30,21 +29,23 @@
 		protected CommandHandler commandHandler;
 		protected ExceptionHandler exceptionHandler;
 		
-		public TransportFilter(ITransport next) {
+		public TransportFilter(ITransport next)
+		{
 			this.next = next;
 			this.next.Command = new CommandHandler(OnCommand);
 			this.next.Exception = new ExceptionHandler(OnException);
 		}
 		
-		protected virtual void OnCommand(ITransport sender, Command command) {
+		protected virtual void OnCommand(ITransport sender, Command command)
+		{
 			this.commandHandler(sender, command);
 		}
 		
-		protected virtual void OnException(ITransport sender, Exception command) {
+		protected virtual void OnException(ITransport sender, Exception command)
+		{
 			this.exceptionHandler(sender, command);
 		}
 		
-		
 		/// <summary>
 		/// Method Oneway
 		/// </summary>
@@ -63,7 +64,16 @@
 		{
 			return this.next.AsyncRequest(command);
 		}
-		
+
+		/// <summary>
+		/// Property RequestTimeout
+		/// </summary>
+		public TimeSpan RequestTimeout
+		{
+			get { return this.next.RequestTimeout; }
+			set { this.next.RequestTimeout = value; }
+		}
+
 		/// <summary>
 		/// Method Request
 		/// </summary>
@@ -71,18 +81,35 @@
 		/// <param name="command">A  Command</param>
 		public virtual Response Request(Command command)
 		{
-			return this.next.Request(command);
+			return Request(command, RequestTimeout);
 		}
-		
+
+		/// <summary>
+		/// Method Request with time out for Response.
+		/// </summary>
+		/// <returns>A Response</returns>
+		/// <param name="command">A  Command</param>
+		/// <param name="timeout">Timeout in milliseconds</param>
+		public virtual Response Request(Command command, TimeSpan timeout)
+		{
+			return this.next.Request(command, timeout);
+		}
+
 		/// <summary>
 		/// Method Start
 		/// </summary>
 		public virtual void Start()
 		{
-			if( commandHandler == null )
+			if(commandHandler == null)
+			{
 				throw new InvalidOperationException ("command cannot be null when Start is called.");
-			if( exceptionHandler == null )
+			}
+
+			if(exceptionHandler == null)
+			{
 				throw new InvalidOperationException ("exception cannot be null when Start is called.");
+			}
+
 			this.next.Start();
 		}
 
@@ -91,10 +118,7 @@
 		/// </summary>
 		public bool IsStarted
 		{
-			get
-			{
-				return this.next.IsStarted;
-			}
+			get { return this.next.IsStarted; }
 		}
 
 		/// <summary>
@@ -105,12 +129,14 @@
 			this.next.Dispose();
 		}
 		
-		public CommandHandler Command {
+		public CommandHandler Command
+		{
             get { return commandHandler; }
             set { this.commandHandler = value; }
         }
 		
-        public  ExceptionHandler Exception {
+        public  ExceptionHandler Exception
+		{
             get { return exceptionHandler; }
             set { this.exceptionHandler = value; }
         }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/WireFormatNegotiator.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/WireFormatNegotiator.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/WireFormatNegotiator.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/WireFormatNegotiator.cs
Tue Jun  3 11:36:18 2008
@@ -31,7 +31,7 @@
     public class WireFormatNegotiator : TransportFilter
     {
         private OpenWireFormat wireFormat;
-        private int negotiateTimeout=15000;
+        private TimeSpan negotiateTimeout = TimeSpan.FromSeconds(15);
     
         private AtomicBoolean firstStart=new AtomicBoolean(true);
         private CountDownLatch readyCountDownLatch = new CountDownLatch(1);
@@ -43,7 +43,8 @@
             this.wireFormat = wireFormat;
         }
         
-        public override void Start() {
+        public override void Start()
+        {
             base.Start();
             if (firstStart.CompareAndSet(true, false))
             {
@@ -58,7 +59,8 @@
             }
         }
         
-        public override void Dispose() {
+        public override void Dispose()
+        {
         	base.Dispose();
             readyCountDownLatch.countDown();
         }
@@ -66,7 +68,7 @@
         public override void Oneway(Command command)
         {
             if (!readyCountDownLatch.await(negotiateTimeout))
-                throw new IOException("Wire format negociation timeout: peer did not send
his wire format.");
+                throw new IOException("Wire format negotiation timeout: peer did not send
his wire format.");
             next.Oneway(command);
         }
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/sandbox/alternative-threading/FutureResponse.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/sandbox/alternative-threading/FutureResponse.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/sandbox/alternative-threading/FutureResponse.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/sandbox/alternative-threading/FutureResponse.cs
Tue Jun  3 11:36:18 2008
@@ -28,7 +28,7 @@
 	public class FutureResponse 
     {
 	    
-        private static int maxWait = -1;
+        private static TimeSpan maxWait = TimeSpan.FromMilliseconds(Timeout.Infinite);
 
         private readonly CountDownLatch latch = new CountDownLatch(1);
         private Response response;

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/Util/CountDownLatch.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/Util/CountDownLatch.cs?rev=662856&r1=662855&r2=662856&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/Util/CountDownLatch.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/main/csharp/Util/CountDownLatch.cs Tue Jun
 3 11:36:18 2008
@@ -55,7 +55,7 @@
 			}
 		}
 
-		public bool await(int timeout)
+		public bool await(TimeSpan timeout)
 		{
 			return mutex.WaitOne(timeout, false);
 		}



Mime
View raw message