This is an automated email from the ASF dual-hosted git repository.
havret pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-nms-openwire.git
The following commit(s) were added to refs/heads/main by this push:
new 720a29c Revert "AMQNET-848 Failover Transport Protocol Excessive
Reconnection Attempts"
720a29c is described below
commit 720a29c4c63cedb08112aeff0918edfb6df093df
Author: Krzysztof Porebski <[email protected]>
AuthorDate: Mon Aug 25 23:00:44 2025 +0200
Revert "AMQNET-848 Failover Transport Protocol Excessive Reconnection
Attempts"
This reverts commit f984674a440408d19b47e9377be7784281cb4eda.
---
src/Transport/Failover/FailoverTransport.cs | 10 +--
src/Transport/InactivityMonitor.cs | 25 ++-----
src/Util/ExceptionFromBrokerError.cs | 78 ----------------------
test/Transport/Inactivity/InactivityMonitorTest.cs | 47 -------------
4 files changed, 9 insertions(+), 151 deletions(-)
diff --git a/src/Transport/Failover/FailoverTransport.cs
b/src/Transport/Failover/FailoverTransport.cs
index e551116..ce78cc1 100644
--- a/src/Transport/Failover/FailoverTransport.cs
+++ b/src/Transport/Failover/FailoverTransport.cs
@@ -468,13 +468,9 @@ namespace Apache.NMS.ActiveMQ.Transport.Failover
{
if (CanReconnect())
{
- //Check to see if the exception is a security exception
- if (!(e is NMSSecurityException))
- {
- Tracer.WarnFormat("Transport failed to {0},
attempting to automatically reconnect due to: {1}",
- ConnectedTransportURI,
e.Message);
- reconnectOk = true;
- }
+ Tracer.WarnFormat("Transport failed to {0}, attempting
to automatically reconnect due to: {1}",
+
ConnectedTransportURI, e.Message);
+ reconnectOk = true;
}
initialized = false;
diff --git a/src/Transport/InactivityMonitor.cs
b/src/Transport/InactivityMonitor.cs
index 1e2d0f0..4c672f6 100644
--- a/src/Transport/InactivityMonitor.cs
+++ b/src/Transport/InactivityMonitor.cs
@@ -19,7 +19,6 @@ using System;
using System.Threading;
using Apache.NMS.ActiveMQ.Commands;
using Apache.NMS.ActiveMQ.Threads;
-using Apache.NMS.ActiveMQ.Util;
using Apache.NMS.ActiveMQ.Util.Synchronization;
using Apache.NMS.Util;
@@ -231,44 +230,32 @@ namespace Apache.NMS.ActiveMQ.Transport
inRead.Value = true;
try
{
- if (command is ExceptionResponse)
- {
- ExceptionResponse error = command as ExceptionResponse;
- NMSException exception =
ExceptionFromBrokerError.CreateExceptionFromBrokerError(error.Exception);
- if (exception is NMSSecurityException)
- {
- OnException(this, exception);
- }
- else
- {
- Tracer.WarnFormat("ExceptionResponse received from the
broker:{0}", command.GetType());
- }
- }else if (command.IsKeepAliveInfo)
+ if(command.IsKeepAliveInfo)
{
KeepAliveInfo info = command as
KeepAliveInfo;
- if (info.ResponseRequired)
+ if(info.ResponseRequired)
{
try
{
info.ResponseRequired =
false;
Oneway(info);
}
- catch (IOException ex)
+ catch(IOException ex)
{
OnException(this, ex);
}
}
}
- else if (command.IsWireFormatInfo)
+ else if(command.IsWireFormatInfo)
{
- lock (monitor)
+ lock(monitor)
{
remoteWireFormatInfo = command
as WireFormatInfo;
try
{
StartMonitorThreads();
}
- catch (IOException ex)
+ catch(IOException ex)
{
OnException(this, ex);
}
diff --git a/src/Util/ExceptionFromBrokerError.cs
b/src/Util/ExceptionFromBrokerError.cs
deleted file mode 100644
index 006cf80..0000000
--- a/src/Util/ExceptionFromBrokerError.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using Apache.NMS.ActiveMQ.Commands;
-using System;
-using System.Reflection;
-
-
-namespace Apache.NMS.ActiveMQ.Util
-{
- internal class ExceptionFromBrokerError
- {
- public static NMSException CreateExceptionFromBrokerError(BrokerError
brokerError)
- {
- String exceptionClassName = brokerError.ExceptionClass;
-
- if (String.IsNullOrEmpty(exceptionClassName))
- {
- return new BrokerException(brokerError);
- }
-
- NMSException exception = null;
- 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 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.NMSSecurityException";
- }
- 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;
- }
- }
-}
diff --git a/test/Transport/Inactivity/InactivityMonitorTest.cs
b/test/Transport/Inactivity/InactivityMonitorTest.cs
index f5aeee2..ba5fb4f 100644
--- a/test/Transport/Inactivity/InactivityMonitorTest.cs
+++ b/test/Transport/Inactivity/InactivityMonitorTest.cs
@@ -133,53 +133,6 @@ namespace Apache.NMS.ActiveMQ.Test
{
}
}
- public class TestableInactivityMonitor : InactivityMonitor
- {
- public TestableInactivityMonitor(ITransport next) : base(next) { }
-
- // Expose protected method for testing
- public Task TestOnCommand(ITransport sender, Command command)
- {
- return OnCommand(sender, command);
- }
- }
- [Test]
- public void OnCommand_WithNMSSecurityException_ShouldCallOnException()
- {
- // Arrange
- var brokerError = new BrokerError
- {
- ExceptionClass = "javax.jms.JMSSecurityException",
- Message = "Authentication failed"
- };
-
- var exceptionResponse = new ExceptionResponse
- {
- Exception = brokerError
- };
-
- // Mock the static method call - this would require making
ExceptionFromBrokerError testable
- // For this test, we'll assume it returns an NMSSecurityException
- var securityException = new NMSSecurityException("Authentication
failed");
- TestableInactivityMonitor monitor = new
TestableInactivityMonitor(this.transport);
- monitor.Exception += new ExceptionHandler(OnException);
- monitor.CommandAsync += new CommandHandlerAsync(OnCommand);
- bool exceptionHandlerCalled = false;
- Exception caughtException = null;
- monitor.Exception += (sender, args) =>
- {
- exceptionHandlerCalled = true;
- caughtException = args;
- };
- // Act
- Task task=monitor.TestOnCommand(transport, exceptionResponse);
- task.Wait();
- // Assert
- Assert.IsTrue(exceptionHandlerCalled, "Exception handler should
have been called");
- Assert.IsNotNull(caughtException, "Exception should have been
caught");
- Assert.IsInstanceOf<NMSSecurityException>(caughtException, "Should
be NMSSecurityException");
- Assert.AreEqual("Authentication failed", caughtException.Message);
- }
[Test]
public void TestNonFailureSendCase()
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact