diff --git a/projects/RabbitMQ.Client/client/api/ShutdownEventArgs.cs b/projects/RabbitMQ.Client/client/api/ShutdownEventArgs.cs
index 961c4a74ed..2aa672227d 100644
--- a/projects/RabbitMQ.Client/client/api/ShutdownEventArgs.cs
+++ b/projects/RabbitMQ.Client/client/api/ShutdownEventArgs.cs
@@ -47,8 +47,8 @@ public class ShutdownEventArgs : EventArgs
/// Construct a with the given parameters and
/// 0 for and .
///
- public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string replyText, object cause = null, Exception exception = null)
- : this(initiator, replyCode, replyText, 0, 0, cause, exception)
+ public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string replyText, object cause = null)
+ : this(initiator, replyCode, replyText, 0, 0, cause)
{
}
@@ -56,7 +56,7 @@ public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string r
/// Construct a with the given parameters.
///
public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string replyText,
- ushort classId, ushort methodId, object cause = null, Exception exception = null)
+ ushort classId, ushort methodId, object cause = null)
{
Initiator = initiator;
ReplyCode = replyCode;
@@ -64,7 +64,15 @@ public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string r
ClassId = classId;
MethodId = methodId;
Cause = cause;
- _exception = exception;
+ }
+
+ ///
+ /// Construct a with the given parameters.
+ ///
+ public ShutdownEventArgs(ShutdownInitiator initiator, ushort replyCode, string replyText, Exception exception)
+ : this(initiator, replyCode, replyText, 0, 0)
+ {
+ _exception = exception ?? throw new ArgumentNullException(nameof(exception));
}
///
diff --git a/projects/RabbitMQ.Client/client/impl/Connection.cs b/projects/RabbitMQ.Client/client/impl/Connection.cs
index 19d105c899..477baa7910 100644
--- a/projects/RabbitMQ.Client/client/impl/Connection.cs
+++ b/projects/RabbitMQ.Client/client/impl/Connection.cs
@@ -543,7 +543,7 @@ public void MainLoop()
// Possible heartbeat exception
var ea = new ShutdownEventArgs(ShutdownInitiator.Library,
0, "End of stream",
- cause: null, exception: eose);
+ exception: eose);
HandleMainLoopException(ea);
}
catch (HardProtocolException hpe)
@@ -558,7 +558,7 @@ public void MainLoop()
*/
var ea = new ShutdownEventArgs(ShutdownInitiator.Library,
Constants.InternalError, fileLoadException.Message,
- cause: null, exception: fileLoadException);
+ exception: fileLoadException);
HandleMainLoopException(ea);
}
catch (Exception ex)
@@ -566,7 +566,7 @@ public void MainLoop()
var ea = new ShutdownEventArgs(ShutdownInitiator.Library,
Constants.InternalError,
$"Unexpected Exception: {ex.Message}",
- cause: null, exception: ex);
+ exception: ex);
HandleMainLoopException(ea);
}
diff --git a/projects/Unit/APIApproval.Approve.verified.txt b/projects/Unit/APIApproval.Approve.verified.txt
index fdfda01b15..c67881833a 100644
--- a/projects/Unit/APIApproval.Approve.verified.txt
+++ b/projects/Unit/APIApproval.Approve.verified.txt
@@ -609,8 +609,9 @@ namespace RabbitMQ.Client
}
public class ShutdownEventArgs : System.EventArgs
{
- public ShutdownEventArgs(RabbitMQ.Client.ShutdownInitiator initiator, ushort replyCode, string replyText, object cause = null, System.Exception exception = null) { }
- public ShutdownEventArgs(RabbitMQ.Client.ShutdownInitiator initiator, ushort replyCode, string replyText, ushort classId, ushort methodId, object cause = null, System.Exception exception = null) { }
+ public ShutdownEventArgs(RabbitMQ.Client.ShutdownInitiator initiator, ushort replyCode, string replyText, System.Exception exception) { }
+ public ShutdownEventArgs(RabbitMQ.Client.ShutdownInitiator initiator, ushort replyCode, string replyText, object cause = null) { }
+ public ShutdownEventArgs(RabbitMQ.Client.ShutdownInitiator initiator, ushort replyCode, string replyText, ushort classId, ushort methodId, object cause = null) { }
public object Cause { get; }
public ushort ClassId { get; }
public System.Exception Exception { get; }