Skip to content

Commit 6184435

Browse files
author
Simon MacMullen
committed
Merged bug 22840
2 parents 3ecf250 + ad4d192 commit 6184435

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

projects/client/RabbitMQ.Client/src/client/exceptions/ProtocolVersionMismatchException.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,18 @@ public class ProtocolVersionMismatchException: System.Net.ProtocolViolationExcep
7575
///<summary>The peer's AMQP specification minor version.</summary>
7676
public int ServerMinor { get { return m_serverMinor; } }
7777

78+
private static String positiveOrUnknown(int version){
79+
return version >= 0 ? version.ToString() : "unknown";
80+
}
81+
7882
///<summary>Fills the new instance's properties with the values passed in.</summary>
7983
public ProtocolVersionMismatchException(int clientMajor,
8084
int clientMinor,
8185
int serverMajor,
8286
int serverMinor)
8387
: base("AMQP server protocol negotiation failure: server version "+
84-
serverMajor + "-" + serverMinor +
85-
", client version " + clientMajor + "-" + clientMinor)
88+
positiveOrUnknown(serverMajor) + "-" + positiveOrUnknown(serverMinor) +
89+
", client version " + positiveOrUnknown(clientMajor) + "-" + positiveOrUnknown(clientMinor))
8690
{
8791
m_clientMajor = clientMajor;
8892
m_clientMinor = clientMinor;

projects/client/RabbitMQ.Client/src/client/impl/ConnectionBase.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,12 @@ public void Open(bool insist)
977977

978978
ConnectionStartDetails connectionStart = (ConnectionStartDetails)
979979
connectionStartCell.Value;
980+
981+
if (connectionStart == null){
982+
throw new ProtocolVersionMismatchException(Protocol.MajorVersion,
983+
Protocol.MinorVersion,
984+
-1, -1);
985+
}
980986

981987
ServerProperties = connectionStart.m_serverProperties;
982988

projects/client/RabbitMQ.Client/src/client/impl/ModelBase.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,10 @@ public void FinishClose()
482482
{
483483
m_session.Close(m_closeReason);
484484
}
485+
if (m_connectionStartCell != null)
486+
{
487+
m_connectionStartCell.Value = null;
488+
}
485489
}
486490

487491
///////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)