You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jg...@apache.org on 2013/02/26 23:13:03 UTC

svn commit: r1450481 - in /activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk: ./ src/main/csharp/ src/main/csharp/State/ src/main/csharp/Transport/ src/test/csharp/ src/test/csharp/Commands/ src/test/csharp/OpenWire/ src/test/csharp/Transactions/

Author: jgomes
Date: Tue Feb 26 22:13:02 2013
New Revision: 1450481

URL: http://svn.apache.org/r1450481
Log:
Fix for AMQNET-415. Throw an InvalidClientIDException if the login credentials are incorrect when using a failover protocol connection.  Added matching unit test.
Unit Test cleanup: Standardized the destination naming convention to prefix names with "TEST.".

Added:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InvalidCredentialsTest.cs
      - copied, changed from r1445294, activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/IndividualAckTest.cs
Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Connection.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionStateTracker.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SessionState.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SynchronizedObjects.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/TransactionState.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/InactivityMonitor.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQNET366Test.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQQueueTransactionTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQRedeliveryPolicyTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQTopicTransactionTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/ActiveMQMessageTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/MessageCompressionTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/DtcTransactionsTestSupport.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/ExclusiveConsumerTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageConsumerTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSSessionRecoverTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/MaxInactivityDurationTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/PrefetchSizeZeroTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueBrowserTests.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueConsumerPriorityTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/RollbackRedeliveryTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transactions/RecoveryFileLoggerTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/VirtualTopicTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config Tue Feb 26 22:13:02 2013
@@ -28,4 +28,20 @@
 		<userName value="guest"/>
 		<passWord value="guest"/>
 	</openWireURI>
+
+  <InvalidCredentials-BogusUser value="activemq:failover:tcp://${activemqhost}:61616">
+    <factoryParams>
+      <param type="string" value="InvalidCredentialsTestClient"/>
+    </factoryParams>
+    <userName value="BogusUser"/>
+    <passWord value="BogusPassword"/>
+  </InvalidCredentials-BogusUser>
+
+  <InvalidCredentials-AuthenticUser value="activemq:failover:tcp://${activemqhost}:61616">
+    <factoryParams>
+      <param type="string" value="InvalidCredentialsTestClient"/>
+    </factoryParams>
+    <userName value="system"/>
+    <passWord value="manager"/>
+  </InvalidCredentials-AuthenticUser>
 </configuration>

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=1450481&r1=1450480&r2=1450481&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 Feb 26 22:13:02 2013
@@ -90,11 +90,7 @@ namespace Apache.NMS.ActiveMQ
 			this.brokerUri = connectionUri;
 			this.clientIdGenerator = clientIdGenerator;
 
-			this.transport = transport;
-			this.transport.Command = new CommandHandler(OnCommand);
-			this.transport.Exception = new ExceptionHandler(OnTransportException);
-			this.transport.Interrupted = new InterruptedHandler(OnTransportInterrupted);
-			this.transport.Resumed = new ResumedHandler(OnTransportResumed);
+			SetTransport(transport);
 
 			ConnectionId id = new ConnectionId();
 			id.Value = CONNECTION_ID_GENERATOR.GenerateId();
@@ -412,6 +408,15 @@ namespace Apache.NMS.ActiveMQ
 
 		#endregion
 
+		private void SetTransport(ITransport newTransport)
+		{
+			this.transport = newTransport;
+			this.transport.Command = new CommandHandler(OnCommand);
+			this.transport.Exception = new ExceptionHandler(OnTransportException);
+			this.transport.Interrupted = new InterruptedHandler(OnTransportInterrupted);
+			this.transport.Resumed = new ResumedHandler(OnTransportResumed);
+		}
+
 		/// <summary>
 		/// Starts asynchronous message delivery of incoming messages for this connection.
 		/// Synchronous delivery is unaffected.
@@ -496,35 +501,35 @@ namespace Apache.NMS.ActiveMQ
 			}
 		}
 
-		internal void addDispatcher( ConsumerId id, IDispatcher dispatcher )
+		internal void addDispatcher(ConsumerId id, IDispatcher dispatcher)
 		{
 			if(!this.closing.Value)
 			{
-				this.dispatchers.Add( id, dispatcher );
+				this.dispatchers.Add(id, dispatcher);
 			}
 		}
 
-		internal void removeDispatcher( ConsumerId id )
+		internal void removeDispatcher(ConsumerId id)
 		{
 			if(!this.closing.Value)
 			{
-				this.dispatchers.Remove( id );
+				this.dispatchers.Remove(id);
 			}
 		}
 
-		internal void addProducer( ProducerId id, MessageProducer producer )
+		internal void addProducer(ProducerId id, MessageProducer producer)
 		{
 			if(!this.closing.Value)
 			{
-				this.producers.Add( id, producer );
+				this.producers.Add(id, producer);
 			}
 		}
 
-		internal void removeProducer( ProducerId id )
+		internal void removeProducer(ProducerId id)
 		{
 			if(!this.closing.Value)
 			{
-				this.producers.Remove( id );
+				this.producers.Remove(id);
 			}
 		}
 
@@ -640,35 +645,35 @@ namespace Apache.NMS.ActiveMQ
 			disposed = true;
 		}
 
-        public void PurgeTempDestinations()
-        {
-            if (this.tempDests == null || this.tempDests.Count == 0)
-            {
-                return;
-            }
-
-            lock(this.tempDests.SyncRoot)
-            {
-                Object[] keys = new Object[this.tempDests.Count];
-                this.tempDests.Keys.CopyTo(keys, 0);
-                foreach(ActiveMQTempDestination dest in keys)
-                {
-                    String localConnectionId = info.ConnectionId == null ? "" : info.ConnectionId.ToString();
-                    if (dest.PhysicalName.Contains(localConnectionId))
-                    {
-                        try
-                        {
-                            DeleteTemporaryDestination(dest);
-                        }
-                        catch
-                        {
-                            // The destination may still be in use in which case its
-                            // ok that it is not deleted now.
-                        }
-                    }
-                }
-            }
-        }
+		public void PurgeTempDestinations()
+		{
+			if(this.tempDests == null || this.tempDests.Count == 0)
+			{
+				return;
+			}
+
+			lock(this.tempDests.SyncRoot)
+			{
+				Object[] keys = new Object[this.tempDests.Count];
+				this.tempDests.Keys.CopyTo(keys, 0);
+				foreach(ActiveMQTempDestination dest in keys)
+				{
+					String localConnectionId = info.ConnectionId == null ? "" : info.ConnectionId.ToString();
+					if(dest.PhysicalName.Contains(localConnectionId))
+					{
+						try
+						{
+							DeleteTemporaryDestination(dest);
+						}
+						catch
+						{
+							// The destination may still be in use in which case its
+							// ok that it is not deleted now.
+						}
+					}
+				}
+			}
+		}
 
 		// Implementation methods
 
@@ -696,16 +701,16 @@ namespace Apache.NMS.ActiveMQ
 				Response response = transport.Request(command, requestTimeout);
 				if(response is ExceptionResponse)
 				{
-					ExceptionResponse exceptionResponse = (ExceptionResponse)response;
-                    Exception exception = CreateExceptionFromBrokerError(exceptionResponse.Exception);
+					ExceptionResponse exceptionResponse = (ExceptionResponse) response;
+					Exception exception = CreateExceptionFromBrokerError(exceptionResponse.Exception);
 					throw exception;
 				}
 				return response;
 			}
-            catch(NMSException)
-            {
-                throw;
-            }
+			catch(NMSException)
+			{
+				throw;
+			}
 			catch(Exception ex)
 			{
 				throw NMSExceptionSupport.Create(ex);
@@ -738,10 +743,10 @@ namespace Apache.NMS.ActiveMQ
 					if(connected.Value)
 					{
 						transport.Oneway(command);
-						if (Tracer.IsDebugEnabled)
+						if(Tracer.IsDebugEnabled)
 						{
-							Tracer.DebugFormat("Connection[{0}]: Oneway command sent to broker: {1}", 
-								               this.ConnectionId, command);
+							Tracer.DebugFormat("Connection[{0}]: Oneway command sent to broker: {1}",
+											   this.ConnectionId, command);
 						}
 					}
 				}
@@ -798,6 +803,12 @@ namespace Apache.NMS.ActiveMQ
 								{
 									if(null != transport)
 									{
+										// Make sure the transport is started.
+										if(!this.transport.IsStarted)
+										{
+											this.transport.Start();
+										}
+
 										// Send the connection and see if an ack/nak is returned.
 										Response response = transport.Request(this.info, this.RequestTimeout);
 										if(!(response is ExceptionResponse))
@@ -809,27 +820,32 @@ namespace Apache.NMS.ActiveMQ
 													new SessionId(info.ConnectionId, -1),
 													Interlocked.Increment(ref this.consumerIdCounter));
 												this.advisoryConsumer = new AdvisoryConsumer(this, id);
-                                            }
+											}
 										}
-                                        else
-                                        {
+										else
+										{
 											ExceptionResponse error = response as ExceptionResponse;
-                                            NMSException exception = CreateExceptionFromBrokerError(error.Exception);
-                                            if(exception is InvalidClientIDException)
-                                            {
-                                                // This is non-recoverable
-                                                throw exception;
-                                            }
-                                        }
+											NMSException exception = CreateExceptionFromBrokerError(error.Exception);
+											if(exception is InvalidClientIDException)
+											{
+												// This is non-recoverable.
+												// Shutdown the transport connection, and re-create it, but don't start it.
+												// It will be started if the connection is re-attempted.
+												this.transport.Stop();
+												ITransport newTransport = TransportFactory.CreateTransport(this.brokerUri);
+												SetTransport(newTransport);
+												throw exception;
+											}
+										}
 									}
 								}
-                                catch(BrokerException)
-                                {
-                                    // We Swallow the generic version and throw ConnectionClosedException
-                                }
+								catch(BrokerException)
+								{
+									// We Swallow the generic version and throw ConnectionClosedException
+								}
 								catch(NMSException)
 								{
-                                    throw;
+									throw;
 								}
 							}
 						}
@@ -866,19 +882,19 @@ namespace Apache.NMS.ActiveMQ
 			if(command.IsMessageDispatch)
 			{
 				WaitForTransportInterruptionProcessingToComplete();
-				DispatchMessage((MessageDispatch)command);
+				DispatchMessage((MessageDispatch) command);
 			}
 			else if(command.IsKeepAliveInfo)
 			{
-				OnKeepAliveCommand(commandTransport, (KeepAliveInfo)command);
+				OnKeepAliveCommand(commandTransport, (KeepAliveInfo) command);
 			}
 			else if(command.IsWireFormatInfo)
 			{
-				this.brokerWireFormatInfo = (WireFormatInfo)command;
+				this.brokerWireFormatInfo = (WireFormatInfo) command;
 			}
 			else if(command.IsBrokerInfo)
 			{
-				this.brokerInfo = (BrokerInfo)command;
+				this.brokerInfo = (BrokerInfo) command;
 				this.brokerInfoReceived.countDown();
 			}
 			else if(command.IsShutdownInfo)
@@ -893,7 +909,7 @@ namespace Apache.NMS.ActiveMQ
 			}
 			else if(command.IsProducerAck)
 			{
-				ProducerAck ack = (ProducerAck)command as ProducerAck;
+				ProducerAck ack = (ProducerAck) command as ProducerAck;
 				if(ack.ProducerId != null)
 				{
 					MessageProducer producer = producers[ack.ProducerId] as MessageProducer;
@@ -901,8 +917,8 @@ namespace Apache.NMS.ActiveMQ
 					{
 						if(Tracer.IsDebugEnabled)
 						{
-							Tracer.DebugFormat("Connection[{0}]: Received a new ProducerAck -> ", 
-							                   this.ConnectionId, ack);
+							Tracer.DebugFormat("Connection[{0}]: Received a new ProducerAck -> ",
+											   this.ConnectionId, ack);
 						}
 
 						producer.OnProducerAck(ack);
@@ -913,7 +929,7 @@ namespace Apache.NMS.ActiveMQ
 			{
 				if(!closing.Value && !closed.Value)
 				{
-					ConnectionError connectionError = (ConnectionError)command;
+					ConnectionError connectionError = (ConnectionError) command;
 					BrokerError brokerError = connectionError.Exception;
 					string message = "Broker connection error.";
 					string cause = "";
@@ -943,7 +959,7 @@ namespace Apache.NMS.ActiveMQ
 			{
 				if(dispatchers.Contains(dispatch.ConsumerId))
 				{
-					IDispatcher dispatcher = (IDispatcher)dispatchers[dispatch.ConsumerId];
+					IDispatcher dispatcher = (IDispatcher) dispatchers[dispatch.ConsumerId];
 
 					// Can be null when a consumer has sent a MessagePull and there was
 					// no available message at the broker to dispatch or when signalled
@@ -961,14 +977,14 @@ namespace Apache.NMS.ActiveMQ
 				}
 			}
 
-            Tracer.ErrorFormat("Connection[{0}]: No such consumer active: {1}", this.ConnectionId, dispatch.ConsumerId);
+			Tracer.ErrorFormat("Connection[{0}]: No such consumer active: {1}", this.ConnectionId, dispatch.ConsumerId);
 		}
 
 		protected void OnKeepAliveCommand(ITransport commandTransport, KeepAliveInfo info)
 		{
 			try
 			{
-				if (connected.Value)
+				if(connected.Value)
 				{
 					info.ResponseRequired = false;
 					transport.Oneway(info);
@@ -993,7 +1009,7 @@ namespace Apache.NMS.ActiveMQ
 					{
 						error = NMSExceptionSupport.Create(error);
 					}
-					NMSException e = (NMSException)error;
+					NMSException e = (NMSException) error;
 
 					// Called in another thread so that processing can continue
 					// here, ensures no lock contention.
@@ -1216,7 +1232,7 @@ namespace Apache.NMS.ActiveMQ
 			DestinationInfo command = new DestinationInfo();
 			command.ConnectionId = this.ConnectionId;
 			command.OperationType = DestinationInfo.REMOVE_OPERATION_TYPE; // 1 is remove
-			command.Destination = (ActiveMQDestination)destination;
+			command.Destination = (ActiveMQDestination) destination;
 
 			this.Oneway(command);
 		}
@@ -1229,7 +1245,7 @@ namespace Apache.NMS.ActiveMQ
 				if(!closed.Value && cdl.Remaining > 0)
 				{
 					Tracer.WarnFormat("Connection[{0}]: Dispatch paused, waiting for outstanding dispatch interruption " +
-					                  "processing ({1}) to complete..", this.ConnectionId, cdl.Remaining);
+									  "processing ({1}) to complete..", this.ConnectionId, cdl.Remaining);
 					cdl.await(TimeSpan.FromSeconds(10));
 				}
 
@@ -1272,7 +1288,7 @@ namespace Apache.NMS.ActiveMQ
 					if(Tracer.IsDebugEnabled)
 					{
 						Tracer.DebugFormat("Connection[{0}]: notified failover transport ({1})" +
-									 	   " of interruption completion.", this.ConnectionId, failoverTransport);
+										   " of interruption completion.", this.ConnectionId, failoverTransport);
 					}
 				}
 			}
@@ -1288,7 +1304,7 @@ namespace Apache.NMS.ActiveMQ
 				if(Tracer.IsDebugEnabled)
 				{
 					Tracer.DebugFormat("Connection[{0}]: notified failover transport ({1})" +
-								 	   " of pending interruption processing.", this.ConnectionId, failoverTransport);
+									   " of pending interruption processing.", this.ConnectionId, failoverTransport);
 				}
 			}
 		}
@@ -1345,55 +1361,72 @@ namespace Apache.NMS.ActiveMQ
 			}
 		}
 
-        private NMSException CreateExceptionFromBrokerError(BrokerError brokerError)
-        {
-            if(String.IsNullOrEmpty(brokerError.ExceptionClass))
-            {
-                return new BrokerException(brokerError);
-            }
-
-            NMSException exception = null;
-            String name = brokerError.ExceptionClass;
-            String message = brokerError.Message;
-
-            // We only create instances of exceptions from the NMS API
-            Assembly nmsAssembly = Assembly.GetAssembly(typeof(NMSException));
-
-            // First try and see if its one we populated ourselves in which case
-            // it will have the correct namespace and exception name.
-            Type exceptionType = nmsAssembly.GetType(name, false, true);
-
-            // Exceptions from the broker don't have the same namespace, so we
-            // trim that and try using the NMS namespace to see if we can get an
-            // NMSException based version of the same type.  We have to convert
-            // the JMS preficed exceptions to NMS also.
-            if(exceptionType == null && !name.StartsWith("Apache.NMS") && name.Contains("."))
-            {
-                int pos = name.LastIndexOf(".");
-                name = name.Substring(pos + 1);
-                name = name.Replace("JMS", "NMS");
-                name = "Apache.NMS." + name;
-
-                exceptionType = nmsAssembly.GetType(name, false, true);
-            }
-
-            if(exceptionType != null)
-            {
-                object[] args = null;
-                if(!String.IsNullOrEmpty(message))
-                {
-                    args = new object[1];
-                    args[0] = message;
-                }
-
-                exception = Activator.CreateInstance(exceptionType, args) as NMSException;
-            }
-            else
-            {
-                exception = new BrokerException(brokerError);
-            }
+		private NMSException CreateExceptionFromBrokerError(BrokerError brokerError)
+		{
+			String exceptionClassName = brokerError.ExceptionClass;
+
+			if(String.IsNullOrEmpty(exceptionClassName))
+			{
+				return new BrokerException(brokerError);
+			}
+
+			NMSException exception = null;
+			String message = brokerError.Message;
 
-            return exception;
-        }
+			// We only create instances of exceptions from the NMS API
+			Assembly nmsAssembly = Assembly.GetAssembly(typeof(NMSException));
+
+			// First try and see if it's one we populated ourselves in which case
+			// it will have the correct namespace and exception name.
+			Type exceptionType = nmsAssembly.GetType(exceptionClassName, false, true);
+
+			// Exceptions from the broker don't have the same namespace, so we
+			// trim that and try using the NMS namespace to see if we can get an
+			// NMSException based version of the same type.  We have to convert
+			// the JMS prefixed exceptions to NMS also.
+			if(null == exceptionType)
+			{
+				if(exceptionClassName.StartsWith("java.lang.SecurityException"))
+				{
+					exceptionClassName = "Apache.NMS.InvalidClientIDException";
+				}
+				else if(!exceptionClassName.StartsWith("Apache.NMS"))
+				{
+					string transformClassName;
+
+					if(exceptionClassName.Contains("."))
+					{
+						int pos = exceptionClassName.LastIndexOf(".");
+						transformClassName = exceptionClassName.Substring(pos + 1).Replace("JMS", "NMS");
+					}
+					else
+					{
+						transformClassName = exceptionClassName;
+					}
+
+					exceptionClassName = "Apache.NMS." + transformClassName;
+				}
+
+				exceptionType = nmsAssembly.GetType(exceptionClassName, false, true);
+			}
+
+			if(exceptionType != null)
+			{
+				object[] args = null;
+				if(!String.IsNullOrEmpty(message))
+				{
+					args = new object[1];
+					args[0] = message;
+				}
+
+				exception = Activator.CreateInstance(exceptionType, args) as NMSException;
+			}
+			else
+			{
+				exception = new BrokerException(brokerError);
+			}
+
+			return exception;
+		}
 	}
 }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs Tue Feb 26 22:13:02 2013
@@ -134,8 +134,6 @@ namespace Apache.NMS.ActiveMQ
                     connection.DefaultClientId = this.clientId;
                 }
 
-                connection.ITransport.Start();
-
                 return connection;
             }
             catch(NMSException e)

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionState.cs Tue Feb 26 22:13:02 2013
@@ -73,22 +73,27 @@ namespace Apache.NMS.ActiveMQ.State
 
 		public void addTransactionState(TransactionId id)
 		{
-			checkShutdown();
-			transactions.Add(id, new TransactionState(id));
+			checkShutdown();
+			TransactionState transactionState = new TransactionState(id);
+
+			if(transactions.ContainsKey(id))
+			{
+				transactions[id] = transactionState;
+			}
+			else
+			{
+				transactions.Add(id, transactionState);
+			}
 		}
 
 		public TransactionState this[TransactionId id]
 		{
 			get
-			{
-				TransactionState state;
-
-				if(transactions.TryGetValue(id, out state))
-				{
-					return state;
-				}
-
-				return null;
+			{
+				TransactionState state = null;
+
+				transactions.TryGetValue(id, out state);
+				return state;
 			}
 		}
 
@@ -100,50 +105,65 @@ namespace Apache.NMS.ActiveMQ.State
 		public SessionState this[SessionId id]
 		{
 			get
-			{
-				SessionState sessionState;
-
-				if(sessions.TryGetValue(id, out sessionState))
-				{
-					return sessionState;
-				}
-
-#if DEBUG
-				// Useful for dignosing missing session ids
-				string sessionList = string.Empty;
-				foreach(SessionId sessionId in sessions.Keys)
-				{
-					sessionList += sessionId.ToString() + "\n";
+			{
+				SessionState sessionState = null;
+
+				sessions.TryGetValue(id, out sessionState);
+
+#if DEBUG
+				if(null == sessionState)
+				{
+					// Useful for dignosing missing session ids
+					string sessionList = string.Empty;
+					foreach(SessionId sessionId in sessions.Keys)
+					{
+						sessionList += sessionId.ToString() + "\n";
+					}
+
+					System.Diagnostics.Debug.Assert(false,
+						string.Format("Session '{0}' did not exist in the sessions collection.\n\nSessions:-\n{1}", id, sessionList));
 				}
-
-				System.Diagnostics.Debug.Assert(false,
-					string.Format("Session '{0}' did not exist in the sessions collection.\n\nSessions:-\n{1}", id, sessionList));
-#endif
-				return null;
+#endif
+				return sessionState;
 			}
 		}
 
 		public TransactionState removeTransactionState(TransactionId id)
 		{
-			TransactionState ret = null;
+			TransactionState ret = null;
+
+			if(transactions.TryGetValue(id, out ret))
+			{
+				transactions.Remove(id);
+			}
 
-			transactions.TryGetValue(id, out ret);
-			transactions.Remove(id);
 			return ret;
 		}
 
 		public void addSession(SessionInfo info)
 		{
-			checkShutdown();
-			sessions.Add(info.SessionId, new SessionState(info));
+			checkShutdown();
+			SessionState sessionState = new SessionState(info);
+
+			if(sessions.ContainsKey(info.SessionId))
+			{
+				sessions[info.SessionId] = sessionState;
+			}
+			else
+			{
+				sessions.Add(info.SessionId, sessionState);
+			}
 		}
 
 		public SessionState removeSession(SessionId id)
 		{
-			SessionState ret = null;
+			SessionState ret = null;
+
+			if(sessions.TryGetValue(id, out ret))
+			{
+				sessions.Remove(id);
+			}
 
-			sessions.TryGetValue(id, out ret);
-			sessions.Remove(id);
 			return ret;
 		}
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionStateTracker.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionStateTracker.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionStateTracker.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/ConnectionStateTracker.cs Tue Feb 26 22:13:02 2013
@@ -505,11 +505,21 @@ namespace Apache.NMS.ActiveMQ.State
         }
 
         public override Response processAddConnection(ConnectionInfo info)
-        {
+        {
             if(info != null)
-            {
-                connectionStates.Add(info.ConnectionId, new ConnectionState(info));
+            {
+				ConnectionState connState = new ConnectionState(info);
+
+				if(connectionStates.ContainsKey(info.ConnectionId))
+				{
+					connectionStates[info.ConnectionId] = connState;
+				}
+				else
+				{
+					connectionStates.Add(info.ConnectionId, connState);
+				}
             }
+
             return TRACKED_RESPONSE_MARKER;
         }
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SessionState.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SessionState.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SessionState.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SessionState.cs Tue Feb 26 22:13:02 2013
@@ -41,32 +41,59 @@ namespace Apache.NMS.ActiveMQ.State
 
 		public void addProducer(ProducerInfo info)
 		{
-			checkShutdown();
-			producers.Add(info.ProducerId, new ProducerState(info));
+			checkShutdown();
+			ProducerState producerState = new ProducerState(info);
+
+			if(producers.ContainsKey(info.ProducerId))
+			{
+				producers[info.ProducerId] = producerState;
+			}
+			else
+			{
+				producers.Add(info.ProducerId, producerState);
+			}
 		}
 
 		public ProducerState removeProducer(ProducerId id)
-		{
-			ProducerState ret = producers[id];
-			producers.Remove(id);
-            if (ret.TransactionState != null)
-            {
-                ret.TransactionState.AddProducer(ret);
-            }
+		{
+			ProducerState ret = null;
+
+			if(producers.TryGetValue(id, out ret))
+			{
+				producers.Remove(id);
+				if(null != ret && ret.TransactionState != null)
+				{
+					ret.TransactionState.AddProducer(ret);
+				}
+			}
 
 			return ret;
 		}
 
 		public void addConsumer(ConsumerInfo info)
 		{
-			checkShutdown();
-			consumers.Add(info.ConsumerId, new ConsumerState(info));
+			checkShutdown();
+			ConsumerState consumerState = new ConsumerState(info);
+
+			if(consumers.ContainsKey(info.ConsumerId))
+			{
+				consumers.Add(info.ConsumerId, consumerState);
+			}
+			else
+			{
+				consumers.Add(info.ConsumerId, consumerState);
+			}
 		}
 
 		public ConsumerState removeConsumer(ConsumerId id)
-		{
-			ConsumerState ret = consumers[id];
-			consumers.Remove(id);
+		{
+			ConsumerState ret = null;
+
+			if(consumers.TryGetValue(id, out ret))
+			{
+				consumers.Remove(id);
+			}
+
 			return ret;
 		}
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SynchronizedObjects.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SynchronizedObjects.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SynchronizedObjects.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/SynchronizedObjects.cs Tue Feb 26 22:13:02 2013
@@ -217,6 +217,22 @@ namespace Apache.NMS.ActiveMQ.State
 			{
 				return _dictionary.Remove(v);
 			}
-		}
+		}
+
+		public bool ContainsKey(TKey k)
+		{
+			lock(((ICollection) _dictionary).SyncRoot)
+			{
+				return _dictionary.ContainsKey(k);
+			}
+		}
+
+		public bool ContainsValue(TValue v)
+		{
+			lock(((ICollection) _dictionary).SyncRoot)
+			{
+				return _dictionary.ContainsValue(v);
+			}
+		}
 	}
 }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/TransactionState.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/TransactionState.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/TransactionState.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/State/TransactionState.cs Tue Feb 26 22:13:02 2013
@@ -83,8 +83,15 @@ namespace Apache.NMS.ActiveMQ.State
 		}
 
         public void AddProducer(ProducerState producer)
-        {
-            this.producers.Add(producer.Info.ProducerId, producer);
+        {
+			if(this.producers.ContainsKey(producer.Info.ProducerId))
+			{
+				this.producers[producer.Info.ProducerId] = producer;
+			}
+			else
+			{
+				this.producers.Add(producer.Info.ProducerId, producer);
+			}
         }
 
         public AtomicCollection<ProducerState> ProducerStates

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/InactivityMonitor.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/InactivityMonitor.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/InactivityMonitor.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/Transport/InactivityMonitor.cs Tue Feb 26 22:13:02 2013
@@ -93,7 +93,7 @@ namespace Apache.NMS.ActiveMQ.Transport
 			: base(next)
 		{
 			this.instanceId = ++id;
-			Tracer.Debug("Creating Inactivity Monitor: " + instanceId);
+			Tracer.DebugFormat("Creating Inactivity Monitor: {0}", instanceId);
 		}
 
 		~InactivityMonitor()
@@ -305,7 +305,7 @@ namespace Apache.NMS.ActiveMQ.Transport
 		{
 			if(failed.CompareAndSet(false, true) && !this.disposing)
 			{
-				Tracer.Debug("Exception received in the Inactivity Monitor: " + command.ToString());
+				Tracer.DebugFormat("Exception received in the Inactivity Monitor: {0}", command.Message);
 				StopMonitorThreads();
 				base.OnException(sender, command);
 			}

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQNET366Test.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQNET366Test.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQNET366Test.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQNET366Test.cs Tue Feb 26 22:13:02 2013
@@ -49,7 +49,7 @@ namespace Apache.NMS.ActiveMQ.Test
             using (connection = factory.CreateConnection())
             using (ISession session = connection.CreateSession())
             {
-                IDestination destination = SessionUtil.GetDestination(session, "queue://test.test.in");
+                IDestination destination = SessionUtil.GetDestination(session, "queue://TEST.test.in");
                 using (IMessageConsumer consumer = session.CreateConsumer(destination))
                 {
                     Connection amqConnection = connection as Connection;

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQQueueTransactionTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQQueueTransactionTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQQueueTransactionTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQQueueTransactionTest.cs Tue Feb 26 22:13:02 2013
@@ -42,7 +42,7 @@ namespace Apache.NMS.ActiveMQ.Test
 
         protected override String DestinationName
         {
-            get { return "AMQQueueTransactionTestDestination"; }
+            get { return "TEST.AMQQueueTransactionTestDestination"; }
         }
 
     }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQRedeliveryPolicyTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQRedeliveryPolicyTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQRedeliveryPolicyTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQRedeliveryPolicyTest.cs Tue Feb 26 22:13:02 2013
@@ -26,7 +26,7 @@ namespace Apache.NMS.ActiveMQ.Test
     [TestFixture]
     public class AMQRedeliveryPolicyTest : NMSTestSupport
     {
-        private const string DESTINATION_NAME = "RedeliveryPolicyTestDest";
+        private const string DESTINATION_NAME = "TEST.RedeliveryPolicyTestDest";
 
         [Test]
         public void TestExponentialRedeliveryPolicyDelaysDeliveryOnRollback()

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQTopicTransactionTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQTopicTransactionTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQTopicTransactionTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/AMQTopicTransactionTest.cs Tue Feb 26 22:13:02 2013
@@ -24,7 +24,7 @@ namespace Apache.NMS.ActiveMQ.Test
     public class AMQTopicTransactionTest : AMQTransactionTestSupport
     {
         public const String CLIENT_ID = "TopicTransactionTest";
-        public const String DESTINATION_NAME = "AMQTopicTransactionTestDestination";
+        public const String DESTINATION_NAME = "TEST.AMQTopicTransactionTestDestination";
         public const String SUBSCRIPTION_NAME = "TopicTransactionTest";
 
         protected override bool Topic

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/ActiveMQMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/ActiveMQMessageTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/ActiveMQMessageTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/ActiveMQMessageTest.cs Tue Feb 26 22:13:02 2013
@@ -42,8 +42,8 @@ namespace Apache.NMS.ActiveMQ.Test.Comma
         {
             this.nmsMessageID = "testid";
             this.nmsCorrelationID = "testcorrelationid";
-            this.nmsDestination = new ActiveMQTopic("test.topic");
-            this.nmsReplyTo = new ActiveMQTempTopic("test.replyto.topic:001");
+            this.nmsDestination = new ActiveMQTopic("TEST.test.topic");
+            this.nmsReplyTo = new ActiveMQTempTopic("TEST.test.replyto.topic:001");
             this.nmsDeliveryMode = MsgDeliveryMode.NonPersistent;
             this.nmsRedelivered = true;
             this.nmsType = "test type";

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/MessageCompressionTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/MessageCompressionTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/MessageCompressionTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Commands/MessageCompressionTest.cs Tue Feb 26 22:13:02 2013
@@ -28,7 +28,7 @@ namespace Apache.NMS.ActiveMQ.Test
     public class MessageCompressionTest : NMSTestSupport
     {
         protected static string TEST_CLIENT_ID = "MessageCompressionTestClientId";
-        protected static string DESTINATION_NAME = "MessageCompressionTestDest";
+        protected static string DESTINATION_NAME = "TEST.MessageCompressionTestDest";
         
         // The following text should compress well
         private const string TEXT = "The quick red fox jumped over the lazy brown dog. " + "The quick red fox jumped over the lazy brown dog. "

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/DtcTransactionsTestSupport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/DtcTransactionsTestSupport.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/DtcTransactionsTestSupport.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/DtcTransactionsTestSupport.cs Tue Feb 26 22:13:02 2013
@@ -62,7 +62,7 @@ namespace Apache.NMS.ActiveMQ.Test
         public override void SetUp()
         {
             this.oldTracer = Tracer.Trace;
-            this.nonExistantPath = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + Guid.NewGuid();
+            this.nonExistantPath = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString());
 
             base.SetUp();
 
@@ -81,7 +81,7 @@ namespace Apache.NMS.ActiveMQ.Test
 
         protected void OnException(Exception ex)
         {
-            Tracer.Debug("Test Driver received Error Notification: " + ex.Message);
+            Tracer.DebugFormat("Test Driver received Error Notification: {0}", ex.Message);
         }
 
         #region Database Utility Methods

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/ExclusiveConsumerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/ExclusiveConsumerTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/ExclusiveConsumerTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/ExclusiveConsumerTest.cs Tue Feb 26 22:13:02 2013
@@ -26,7 +26,7 @@ namespace Apache.NMS.ActiveMQ.Test
     [TestFixture]   
     public class ExclusiveConsumerTest : NMSTestSupport
     {
-        protected static string DESTINATION_NAME = "ExclusiveConsumerTestDestination";
+        protected static string DESTINATION_NAME = "TEST.ExclusiveConsumerTestDestination";
         protected static string TEST_CLIENT_ID = "ExclusiveConsumerTestClientId";
         
         private IConnection createConnection(bool start) 

Copied: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InvalidCredentialsTest.cs (from r1445294, activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/IndividualAckTest.cs)
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InvalidCredentialsTest.cs?p2=activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InvalidCredentialsTest.cs&p1=activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/IndividualAckTest.cs&r1=1445294&r2=1450481&rev=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/IndividualAckTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InvalidCredentialsTest.cs Tue Feb 26 22:13:02 2013
@@ -21,244 +21,46 @@ using NUnit.Framework;
 
 namespace Apache.NMS.ActiveMQ.Test
 {
-    [TestFixture]
-    public class IndividualAckTest : NMSTestSupport
-    {
-        private IConnection connection;
-
-        [SetUp]
-        public override void SetUp()
-        {
-            base.SetUp();
-
-            connection = CreateConnection();
-            connection.Start();
-        }
-
-        [TearDown]
-        public override void TearDown()
-        {
-            connection.Close();
-            base.TearDown();
-        }
-
-        [Test]
-        public void TestAckedMessageAreConsumed()
-        {
-            ISession session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-            ITemporaryQueue queue = session.CreateTemporaryQueue();
-            IMessageProducer producer = session.CreateProducer(queue);
-            producer.Send(session.CreateTextMessage("Hello"));
-
-            // Consume the message...
-            IMessageConsumer consumer = session.CreateConsumer(queue);
-            IMessage msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNotNull(msg);
-            msg.Acknowledge();
-
-            // Reset the session.
-            session.Close();
-            session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-
-            // Attempt to Consume the message...
-            consumer = session.CreateConsumer(queue);
-            msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNull(msg);
-
-            session.Close();
-        }
-
-        [Test]
-        public void TestLastMessageAcked()
-        {
-            ISession session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-            ITemporaryQueue queue = session.CreateTemporaryQueue();
-            IMessageProducer producer = session.CreateProducer(queue);
-            ITextMessage msg1 = session.CreateTextMessage("msg1" + Guid.NewGuid().ToString());
-            ITextMessage msg2 = session.CreateTextMessage("msg2" + Guid.NewGuid().ToString());
-            ITextMessage msg3 = session.CreateTextMessage("msg3" + Guid.NewGuid().ToString());
-            producer.Send(msg1);
-            producer.Send(msg2);
-            producer.Send(msg3);
-
-            // Consume the message...
-            IMessageConsumer consumer = session.CreateConsumer(queue);
-            ITextMessage ackmsg = consumer.Receive(TimeSpan.FromMilliseconds(1000)) as ITextMessage;
-            Assert.IsNotNull(ackmsg);
-            Assert.AreEqual(msg1.Text,ackmsg.Text);
-            ackmsg = consumer.Receive(TimeSpan.FromMilliseconds(1000)) as ITextMessage;
-            Assert.IsNotNull(ackmsg);
-            Assert.AreEqual(msg2.Text,ackmsg.Text);
-            ackmsg = consumer.Receive(TimeSpan.FromMilliseconds(1000)) as ITextMessage;
-            Assert.IsNotNull(ackmsg);
-            Assert.AreEqual(msg3.Text,ackmsg.Text);
-            ackmsg.Acknowledge();
-
-            // Reset the session.
-            session.Close();
-            session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-
-            // Attempt to Consume the message...
-            consumer = session.CreateConsumer(queue);
-            ackmsg = consumer.Receive(TimeSpan.FromMilliseconds(1000)) as ITextMessage;
-            Assert.IsNotNull(ackmsg);
-            Assert.AreEqual(msg1.Text,ackmsg.Text);
-            ackmsg = consumer.Receive(TimeSpan.FromMilliseconds(1000)) as ITextMessage;
-            Assert.IsNotNull(ackmsg);
-            Assert.AreEqual(msg2.Text,ackmsg.Text);
-            IMessage msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNull(msg);
-            session.Close();
-        }
-
-        [Test]
-        public void TestUnAckedMessageAreNotConsumedOnSessionClose()
-        {
-            ISession session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-            ITemporaryQueue queue = session.CreateTemporaryQueue();
-            IMessageProducer producer = session.CreateProducer(queue);
-            producer.Send(session.CreateTextMessage("Hello"));
-
-            // Consume the message...
-            IMessageConsumer consumer = session.CreateConsumer(queue);
-            IMessage msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNotNull(msg);
-            // Don't ack the message.
-
-            // Reset the session.  This should cause the unacknowledged message to be re-delivered.
-            session.Close();
-            session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-
-            // Attempt to Consume the message...
-            consumer = session.CreateConsumer(queue);
-            msg = consumer.Receive(TimeSpan.FromMilliseconds(2000));
-            Assert.IsNotNull(msg);
-            msg.Acknowledge();
+	[TestFixture]
+	public class InvalidCredentialsTest : NMSTestSupport
+	{
+		private IConnection connection;
 
-            session.Close();
-        }
+		[SetUp]
+		public override void SetUp()
+		{
+			base.SetUp();
+		}
+
+		[TearDown]
+		public override void TearDown()
+		{
+			base.TearDown();
+		}
 
-        [Test]
-	    public void TestIndividualAcknowledgeMultiMessages_AcknowledgeFirstTest()
+		// Maximum time to run is 20 seconds.
+		[Test, Timeout(20000)]
+		public void TestRestartInvalidCredentialsWithFailover()
 		{
-            ISession session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
+			string connectionURI = "activemq:failover:tcp://${activemqhost}:61616";
+			ConnectionFactory factory = new ConnectionFactory(NMSTestSupport.ReplaceEnvVar(connectionURI));
 
-            // Push 2 messages to queue
-            ITemporaryQueue queue = session.CreateTemporaryQueue();
-            IMessageProducer producer = session.CreateProducer(queue);
-
-            ITextMessage msg = session.CreateTextMessage("test 1");
-            producer.Send(msg, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);
-			msg = session.CreateTextMessage("test 2");
-            producer.Send(msg, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);
-            producer.Close();
-
-            IMessageConsumer consumer = session.CreateConsumer(queue);
-
-            // Read the first message
-            ITextMessage fetchedMessage1 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
-            Assert.IsNotNull(fetchedMessage1);
-            Assert.AreEqual("test 1", fetchedMessage1.Text);
-
-			// Read the second message
-			ITextMessage fetchedMessage2 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
-            Assert.IsNotNull(fetchedMessage2);
-            Assert.AreEqual("test 2", fetchedMessage2.Text);
-
-            // Acknowledge first message
-            fetchedMessage1.Acknowledge();
-
-            consumer.Close();
-
-            // Read first message a second time
-            consumer = session.CreateConsumer(queue);
-            fetchedMessage1 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
-            Assert.IsNotNull(fetchedMessage1);
-            Assert.AreEqual("test 2", fetchedMessage1.Text);
-
-            // Try to read second message a second time
-            fetchedMessage2 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
-            Assert.IsNull(fetchedMessage2);
-            consumer.Close();
-	    }
-
-        [Test]
-        public void TestManyMessageAckedAfterMessageConsumption()
-        {
-            int messageCount = 20;
-            IMessage msg;
-
-            ISession session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-            ITemporaryQueue queue = session.CreateTemporaryQueue();
-            IMessageProducer producer = session.CreateProducer(queue);
-            for(int i = 0; i < messageCount; i++)
-            {
-                msg = session.CreateTextMessage("msg" + i);
-                producer.Send(msg);
-            }
-
-            // Consume the message...
-            IMessageConsumer consumer = session.CreateConsumer(queue);
-            for(int i = 0; i < messageCount; i++)
-            {
-                msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-                Assert.IsNotNull(msg);
-                msg.Acknowledge();
-            }
-            msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNull(msg);
-
-            // Reset the session.
-            session.Close();
-            session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-
-            // Attempt to Consume the message...
-            consumer = session.CreateConsumer(queue);
-            msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNull(msg);
-            session.Close();
-        }
-
-        [Test]
-        public void TestManyMessageAckedAfterAllConsumption()
-        {
-            int messageCount = 20;
-            IMessage msg;
-
-            ISession session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-            ITemporaryQueue queue = session.CreateTemporaryQueue();
-            IMessageProducer producer = session.CreateProducer(queue);
-            for(int i = 0; i < messageCount; i++)
-            {
-                msg = session.CreateTextMessage("msg" + i);
-                producer.Send(msg);
-            }
-
-            // Consume the message...
-            IMessageConsumer consumer = session.CreateConsumer(queue);
-            IMessage[] consumedMessages = new IMessage[messageCount];
-            for(int i = 0; i < messageCount; i++)
-            {
-                msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-                Assert.IsNotNull(msg);
-                consumedMessages[i] = msg;
-            }
-            for(int i = 0; i < messageCount; i++)
-            {
-                consumedMessages[i].Acknowledge();
-            }
-            msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNull(msg);
-
-            // Reset the session.
-            session.Close();
-            session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);
-
-            // Attempt to Consume the message...
-            consumer = session.CreateConsumer(queue);
-            msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
-            Assert.IsNull(msg);
-            session.Close();
-        }
-    }
+			// To run this test successfully, the broker must have secure login enabled.
+			// This test will attempt to login to the server using invalid credentials.
+			// It should not connect, and should not go into failover retry loop.
+			// It will then attempt to login with correct credentials, and it should be succcessful on second attempt.
+			Assert.IsTrue(CreateNMSFactory("InvalidCredentials-BogusUser"));
+			using(IConnection connection = CreateConnection())
+			{
+				Assert.Throws(typeof(InvalidClientIDException), () => { connection.Start(); }, "You may not have enabled credential login on the broker.  Credentials must be enabled for this test to pass.");
+			}
+
+			// Now connect with a valid user account.
+			Assert.IsTrue(CreateNMSFactory("InvalidCredentials-AuthenticUser"));
+			using(IConnection connection = CreateConnection())
+			{
+				Assert.DoesNotThrow(() => { connection.Start(); }, "You may not have set the InvalidCredentials-AuthenticUser node in the nmsprovider-test.config file.");
+			}
+		}
+	}
 }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageConsumerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageConsumerTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageConsumerTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MessageConsumerTest.cs Tue Feb 26 22:13:02 2013
@@ -34,7 +34,7 @@ namespace Apache.NMS.ActiveMQ.Test
     [TestFixture]
     public class MessageConsumerTest : NMSTestSupport
     {
-        protected static string DESTINATION_NAME = "queue://MessageConsumerTestDestination";
+        protected static string DESTINATION_NAME = "queue://TEST.MessageConsumerTestDestination";
         protected static string TEST_CLIENT_ID = "MessageConsumerTestClientId";
 
         private CountDownLatch doneLatch;
@@ -209,7 +209,7 @@ namespace Apache.NMS.ActiveMQ.Test
                         {
                             producer.DeliveryMode = deliveryMode;
 
-                            string msgText = "ExpiredMessage:" + Guid.NewGuid().ToString();
+                            string msgText = string.Format("ExpiredMessage: {0}", Guid.NewGuid().ToString());
 
                             ActiveMQTextMessage msg = session.CreateTextMessage(msgText) as ActiveMQTextMessage;
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSSessionRecoverTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSSessionRecoverTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSSessionRecoverTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSSessionRecoverTest.cs Tue Feb 26 22:13:02 2013
@@ -58,42 +58,42 @@ namespace Apache.NMS.ActiveMQ.Test
         [Test]
         public void TestQueueSynchRecover()
         {
-            destination = new ActiveMQQueue("Queue-" + DateTime.Now.Ticks);
+            destination = new ActiveMQQueue("TEST.Queue-" + DateTime.Now.Ticks);
             DoTestSynchRecover();
         }
 
         [Test]
         public void TestQueueAsynchRecover()
         {
-            destination = new ActiveMQQueue("Queue-" + DateTime.Now.Ticks);
+			destination = new ActiveMQQueue("TEST.Queue-" + DateTime.Now.Ticks);
             DoTestAsynchRecover();
         }
 
         [Test]
         public void TestTopicSynchRecover()
         {
-            destination = new ActiveMQTopic("Topic-" + DateTime.Now.Ticks);
+			destination = new ActiveMQTopic("TEST.Topic-" + DateTime.Now.Ticks);
             DoTestSynchRecover();
         }
 
         [Test]
         public void TestTopicAsynchRecover()
         {
-            destination = new ActiveMQTopic("Topic-" + DateTime.Now.Ticks);
+			destination = new ActiveMQTopic("TEST.Topic-" + DateTime.Now.Ticks);
             DoTestAsynchRecover();
         }
 
         [Test]
         public void TestQueueAsynchRecoverWithAutoAck()
         {
-            destination = new ActiveMQQueue("Queue-" + DateTime.Now.Ticks);
+			destination = new ActiveMQQueue("TEST.Queue-" + DateTime.Now.Ticks);
             DoTestAsynchRecoverWithAutoAck();
         }
 
         [Test]
         public void TestTopicAsynchRecoverWithAutoAck()
         {
-            destination = new ActiveMQTopic("Topic-" + DateTime.Now.Ticks);
+			destination = new ActiveMQTopic("TEST.Topic-" + DateTime.Now.Ticks);
             DoTestAsynchRecoverWithAutoAck();
         }
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/MaxInactivityDurationTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/MaxInactivityDurationTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/MaxInactivityDurationTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/MaxInactivityDurationTest.cs Tue Feb 26 22:13:02 2013
@@ -27,7 +27,7 @@ namespace Apache.NMS.ActiveMQ.Test
 	[TestFixture]
 	public class MaxInactivityDurationTest : NMSTestSupport
 	{
-		protected static string DESTINATION_NAME = "TestMaxInactivityDuration";
+		protected static string DESTINATION_NAME = "TEST.MaxInactivityDuration";
 		protected static string CORRELATION_ID = "MaxInactivityCorrelationID";
 
 		[Test]
@@ -100,7 +100,7 @@ namespace Apache.NMS.ActiveMQ.Test
 				{
 					using(ISession session = connection.CreateSession())
 					{
-						IDestination destination = SessionUtil.GetDestination(session, "topic://NMSResourceLeak.TestTopic");
+						IDestination destination = SessionUtil.GetDestination(session, "topic://TEST.NMSResourceLeak");
 						using(IMessageConsumer consumer = session.CreateConsumer(destination))
 						{
 							connection.Start();

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/PrefetchSizeZeroTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/PrefetchSizeZeroTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/PrefetchSizeZeroTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/OpenWire/PrefetchSizeZeroTest.cs Tue Feb 26 22:13:02 2013
@@ -26,7 +26,7 @@ namespace Apache.NMS.ActiveMQ.Test
 	[TestFixture]
 	public class PrefetchSizeZeroTest : NMSTestSupport
 	{	
-        protected static string DESTINATION_NAME = "TestPrefetchSizeZero";
+        protected static string DESTINATION_NAME = "TEST.PrefetchSizeZero";
 			
 		[Test]
 		public void TestZeroPrefetchSize()

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueBrowserTests.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueBrowserTests.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueBrowserTests.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueBrowserTests.cs Tue Feb 26 22:13:02 2013
@@ -36,7 +36,7 @@ namespace Apache.NMS.ActiveMQ.Test
 			{
 				using (ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
 				{
-                    IDestination destination = session.GetQueue("TestReceiveBrowseReceive");
+                    IDestination destination = session.GetQueue("TEST.ReceiveBrowseReceive");
 					IMessageProducer producer = session.CreateProducer(destination);
 					IMessageConsumer consumer = session.CreateConsumer(destination);
 					connection.Start();
@@ -152,7 +152,7 @@ namespace Apache.NMS.ActiveMQ.Test
 			{
 				using (ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
 				{
-                    IDestination destination = session.GetQueue("TestBrowseReceive");
+                    IDestination destination = session.GetQueue("TEST.BrowseReceive");
 
 					connection.Start();
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueConsumerPriorityTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueConsumerPriorityTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueConsumerPriorityTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/QueueConsumerPriorityTest.cs Tue Feb 26 22:13:02 2013
@@ -26,7 +26,7 @@ namespace Apache.NMS.ActiveMQ.Test
     [TestFixture]
     public class QueueConsumerPriorityTest : NMSTestSupport
     {
-        protected static string DESTINATION_NAME = "QueueConsumerPriorityTestDestination";
+        protected static string DESTINATION_NAME = "TEST.QueueConsumerPriority";
         protected static string TEST_CLIENT_ID = "QueueConsumerPriorityTestClientId";
         protected static int MSG_COUNT = 50;
         

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/RollbackRedeliveryTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/RollbackRedeliveryTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/RollbackRedeliveryTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/RollbackRedeliveryTest.cs Tue Feb 26 22:13:02 2013
@@ -27,11 +27,10 @@ namespace Apache.NMS.ActiveMQ.Test
     [TestFixture]
     public class RollbackRedeliveryTest : NMSTestSupport
     {
-        protected static string DESTINATION_NAME = "TestDestination";
+        protected static string DESTINATION_NAME = "TEST.RollbackDelivery";
         protected static string TEST_CLIENT_ID = "RollbackRedeliveryTestId";
 
         private const int nbMessages = 10;
-        private const String destinationName = "RollbackRedeliveryTestDestination";
 
         private IConnection connection;
 
@@ -48,7 +47,7 @@ namespace Apache.NMS.ActiveMQ.Test
             connection.Start();
 
             Session session = connection.CreateSession() as Session;
-            IQueue queue = session.GetQueue(destinationName);
+            IQueue queue = session.GetQueue(DESTINATION_NAME);
             session.DeleteDestination(queue);
         }
 
@@ -92,11 +91,11 @@ namespace Apache.NMS.ActiveMQ.Test
 
             if(interleaveProducer)
             {
-                PopulateDestinationWithInterleavedProducer(nbMessages, destinationName);
+                PopulateDestinationWithInterleavedProducer(nbMessages, DESTINATION_NAME);
             }
             else
             {
-                PopulateDestination(nbMessages, destinationName);
+                PopulateDestination(nbMessages, DESTINATION_NAME);
             }
 
             // Consume messages and Rollback transactions
@@ -107,7 +106,7 @@ namespace Apache.NMS.ActiveMQ.Test
                 while(received < nbMessages)
                 {
                     ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-                    IDestination destination = session.GetQueue(destinationName);
+                    IDestination destination = session.GetQueue(DESTINATION_NAME);
                     IMessageConsumer consumer = session.CreateConsumer(destination);
                     ITextMessage msg = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(6000000));
 
@@ -138,14 +137,14 @@ namespace Apache.NMS.ActiveMQ.Test
         {
 	        connection.Start();
 
-	        PopulateDestinationWithInterleavedProducer(nbMessages, destinationName);
+	        PopulateDestinationWithInterleavedProducer(nbMessages, DESTINATION_NAME);
 
 	        // Consume messages and Rollback transactions
 	        {
 	            int received = 0;
                 IDictionary rolledback = Hashtable.Synchronized(new Hashtable());
 	            ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-	            IDestination destination = session.GetQueue(destinationName);
+	            IDestination destination = session.GetQueue(DESTINATION_NAME);
 	            IMessageConsumer consumer = session.CreateConsumer(destination);
 
                 while(received < nbMessages)
@@ -176,14 +175,14 @@ namespace Apache.NMS.ActiveMQ.Test
         {
 	        connection.Start();
 
-	        PopulateDestination(nbMessages, destinationName);
+	        PopulateDestination(nbMessages, DESTINATION_NAME);
 
 	        // Consume messages and Rollback transactions
 	        {
                 int received = 0;
                 IDictionary rolledback = Hashtable.Synchronized(new Hashtable());
 	            ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-	            IDestination destination = session.GetQueue(destinationName);
+	            IDestination destination = session.GetQueue(DESTINATION_NAME);
 
                 while(received < nbMessages)
                 {
@@ -218,13 +217,13 @@ namespace Apache.NMS.ActiveMQ.Test
 
             connection.Start();
 
-            PopulateDestination(1, destinationName);
+            PopulateDestination(1, DESTINATION_NAME);
 
             // Consume messages and Rollback transactions
             {
                 int received = 0;
                 ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-                IDestination destination = session.GetQueue(destinationName);
+                IDestination destination = session.GetQueue(DESTINATION_NAME);
 
                 IMessageConsumer consumer = session.CreateConsumer(destination);
                 ITextMessage msg = null;
@@ -261,7 +260,7 @@ namespace Apache.NMS.ActiveMQ.Test
 
             connection.Start();
 
-            PopulateDestination(1, destinationName);
+            PopulateDestination(1, DESTINATION_NAME);
 
             // Consume messages and Rollback transactions
             {
@@ -275,7 +274,7 @@ namespace Apache.NMS.ActiveMQ.Test
                 while(received <= connection.RedeliveryPolicy.MaximumRedeliveries)
                 {
                     session = connection.CreateSession(AcknowledgementMode.Transactional);
-                    destination = session.GetQueue(destinationName);
+                    destination = session.GetQueue(DESTINATION_NAME);
                     consumer = session.CreateConsumer(destination);
                     msg = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(6000000));
                     Assert.IsNotNull(msg);
@@ -293,7 +292,7 @@ namespace Apache.NMS.ActiveMQ.Test
                 }
 
                 session = connection.CreateSession(AcknowledgementMode.Transactional);
-                destination = session.GetQueue(destinationName);
+                destination = session.GetQueue(DESTINATION_NAME);
                 consumer = session.CreateConsumer(destination);
                 msg = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(6000));
                 Assert.IsNull(msg);
@@ -306,7 +305,7 @@ namespace Apache.NMS.ActiveMQ.Test
             const int numMessages = 1;
             connection.Start();
 
-            PopulateDestination(numMessages, destinationName);
+            PopulateDestination(numMessages, DESTINATION_NAME);
 
             {
                 int received = 0;
@@ -315,7 +314,7 @@ namespace Apache.NMS.ActiveMQ.Test
                 while(received < maxRetries)
                 {
                     ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-                    IDestination destination = session.GetQueue(destinationName);
+                    IDestination destination = session.GetQueue(DESTINATION_NAME);
 
                     IMessageConsumer consumer = session.CreateConsumer(destination);
                     ITextMessage msg = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
@@ -341,7 +340,7 @@ namespace Apache.NMS.ActiveMQ.Test
             (connection as Connection).PrefetchPolicy.SetAll(0);
             connection.Start();
 
-            PopulateDestination(numMessages, destinationName);
+            PopulateDestination(numMessages, DESTINATION_NAME);
 
             {
                 int received = 0;
@@ -350,7 +349,7 @@ namespace Apache.NMS.ActiveMQ.Test
                 while(received < maxRetries)
                 {
                     ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-                    IDestination destination = session.GetQueue(destinationName);
+                    IDestination destination = session.GetQueue(DESTINATION_NAME);
 
                     IMessageConsumer consumer = session.CreateConsumer(destination);
                     ITextMessage msg = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
@@ -372,7 +371,7 @@ namespace Apache.NMS.ActiveMQ.Test
         private void ConsumeMessage(int deliveryCount)
         {
             ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-            IDestination destination = session.GetQueue(destinationName);
+            IDestination destination = session.GetQueue(DESTINATION_NAME);
             IMessageConsumer consumer = session.CreateConsumer(destination);
             ITextMessage msg = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(1000));
             Assert.IsNotNull(msg);
@@ -387,7 +386,7 @@ namespace Apache.NMS.ActiveMQ.Test
         {
             const int numMessages = 1;
 
-            PopulateDestination(numMessages, destinationName);
+            PopulateDestination(numMessages, DESTINATION_NAME);
             connection.Close();
 
             {
@@ -400,7 +399,7 @@ namespace Apache.NMS.ActiveMQ.Test
                     connection = CreateConnection();
                     connection.Start();
                     ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
-                    IDestination destination = session.GetQueue(destinationName);
+                    IDestination destination = session.GetQueue(DESTINATION_NAME);
 
                     IMessageConsumer consumer = session.CreateConsumer(destination);
                     ITextMessage msg = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transactions/RecoveryFileLoggerTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transactions/RecoveryFileLoggerTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transactions/RecoveryFileLoggerTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/Transactions/RecoveryFileLoggerTest.cs Tue Feb 26 22:13:02 2013
@@ -29,7 +29,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
     [TestFixture]
     public class RecoveryFileLoggerTest
     {
-        private Guid rmId;
+        private string rmId;
         private string nonExistantPath;
         private string autoCreatePath;
         private string nonDefaultLogLocation;
@@ -37,10 +37,10 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
         [SetUp]
         public void SetUp()
         {
-            this.rmId = Guid.NewGuid();
-            this.nonExistantPath = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + Guid.NewGuid();
-            this.nonDefaultLogLocation = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + Guid.NewGuid();
-            this.autoCreatePath = Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + Guid.NewGuid();
+            this.rmId = Guid.NewGuid().ToString();
+            this.nonExistantPath = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString());
+			this.nonDefaultLogLocation = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString());
+			this.autoCreatePath = Path.Combine(Directory.GetCurrentDirectory(), Guid.NewGuid().ToString());
 
             Directory.CreateDirectory(nonDefaultLogLocation);
         }
@@ -61,7 +61,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
         {
             RecoveryFileLogger logger = new RecoveryFileLogger();
 
-            logger.Initialize(rmId.ToString());
+            logger.Initialize(rmId);
 
             Assert.AreEqual(Directory.GetCurrentDirectory(), logger.Location);
         }
@@ -72,7 +72,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
             RecoveryFileLogger logger = new RecoveryFileLogger();
 
             logger.Location = nonDefaultLogLocation;
-            logger.Initialize(rmId.ToString());
+            logger.Initialize(rmId);
 
             Assert.AreEqual(nonDefaultLogLocation, logger.Location);
         }
@@ -86,7 +86,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
 
             logger.AutoCreateLocation = true;
             logger.Location = autoCreatePath;
-            logger.Initialize(rmId.ToString());
+            logger.Initialize(rmId);
 
             Assert.IsTrue(Directory.Exists(autoCreatePath));
             Assert.AreEqual(autoCreatePath, logger.Location);
@@ -102,7 +102,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
 
             try
             {
-                logger.Initialize(rmId.ToString());
+                logger.Initialize(rmId);
                 Assert.Fail("Should have detected an invalid dir and thrown an exception");
             }
             catch
@@ -116,7 +116,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
             RecoveryFileLogger logger = new RecoveryFileLogger();
 
             logger.Location = nonDefaultLogLocation;
-            logger.Initialize(rmId.ToString());
+            logger.Initialize(rmId);
 
             Assert.IsTrue(logger.GetRecoverables().Length == 0);
         }
@@ -137,7 +137,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
             gen.NextBytes(recoveryData);
 
             logger.Location = nonDefaultLogLocation;
-            logger.Initialize(rmId.ToString());
+            logger.Initialize(rmId);
 
             XATransactionId xid = new XATransactionId();
             xid.GlobalTransactionId = globalId;
@@ -145,7 +145,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
 
             logger.LogRecoveryInfo(xid, recoveryData);
 
-            Assert.IsTrue(File.Exists(logger.Location + Path.DirectorySeparatorChar + rmId.ToString() + ".bin"),
+            Assert.IsTrue(File.Exists(Path.Combine(logger.Location, rmId + ".bin")),
                           "Recovery File was not created");
         }
 
@@ -165,7 +165,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
             gen.NextBytes(recoveryData);
 
             logger.Location = nonDefaultLogLocation;
-            logger.Initialize(rmId.ToString());
+            logger.Initialize(rmId);
 
             XATransactionId xid = new XATransactionId();
             xid.GlobalTransactionId = globalId;
@@ -173,7 +173,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
 
             logger.LogRecoveryInfo(xid, recoveryData);
 
-            Assert.IsTrue(File.Exists(logger.Location + Path.DirectorySeparatorChar + rmId.ToString() + ".bin"),
+            Assert.IsTrue(File.Exists(Path.Combine(logger.Location, rmId + ".bin")),
                           "Recovery File was not created");
             Assert.IsTrue(logger.GetRecoverables().Length == 1,
                           "Did not recover the logged record.");
@@ -202,7 +202,7 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
             gen.NextBytes(recoveryData);
 
             logger.Location = nonDefaultLogLocation;
-            logger.Initialize(rmId.ToString());
+            logger.Initialize(rmId);
 
             XATransactionId xid = new XATransactionId();
             xid.GlobalTransactionId = globalId;
@@ -210,12 +210,12 @@ namespace Apache.NMS.ActiveMQ.Test.Trans
 
             logger.LogRecoveryInfo(xid, recoveryData);
 
-            Assert.IsTrue(File.Exists(logger.Location + Path.DirectorySeparatorChar + rmId.ToString() + ".bin"),
+            Assert.IsTrue(File.Exists(Path.Combine(logger.Location, rmId + ".bin")),
                           "Recovery File was not created");
 
             logger.Purge();
 
-            Assert.IsFalse(File.Exists(logger.Location + Path.DirectorySeparatorChar + rmId.ToString() + ".bin"),
+            Assert.IsFalse(File.Exists(Path.Combine(logger.Location, rmId + ".bin")),
                           "Recovery File was not created");
         }
 

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/VirtualTopicTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/VirtualTopicTest.cs?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/VirtualTopicTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/VirtualTopicTest.cs Tue Feb 26 22:13:02 2013
@@ -24,7 +24,7 @@ namespace Apache.NMS.ActiveMQ.Test
 	[TestFixture]
 	public class VirtualTopicTest : NMSTestSupport
 	{
-		protected static string DESTINATION_NAME = "TestDestination";
+		protected static string DESTINATION_NAME = "TEST.VTopicDestination";
 		protected static string PRODUCER_DESTINATION_NAME = "VirtualTopic." + DESTINATION_NAME;
 		protected static string CONSUMER_A_DESTINATION_NAME = "Consumer.A." + PRODUCER_DESTINATION_NAME;
 		protected static string CONSUMER_B_DESTINATION_NAME = "Consumer.B." + PRODUCER_DESTINATION_NAME;

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj?rev=1450481&r1=1450480&r2=1450481&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj Tue Feb 26 22:13:02 2013
@@ -79,6 +79,7 @@
     <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />
     <Compile Include="src\test\csharp\ConnectionFactoryTest.cs" />
     <Compile Include="src\test\csharp\ConnectionMetaDataTest.cs" />
+    <Compile Include="src\test\csharp\InvalidCredentialsTest.cs" />
     <Compile Include="src\test\csharp\DtcBasicTransactionsTest.cs" />
     <Compile Include="src\test\csharp\DtcConsumerTransactionsTest.cs" />
     <Compile Include="src\test\csharp\DtcProducerTransactionsTest.cs" />