Skip to content

Commit e4ad911

Browse files
author
Emile Joubert
committed
Throw meaningful exception if server fails start connection
1 parent 4253e72 commit e4ad911

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

RabbitMQDotNetClient.sln

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
Microsoft Visual Studio Solution File, Format Version 9.00
2+
Microsoft Visual Studio Solution File, Format Version 10.00
33
# Visual Studio 2008
44
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projects", "projects", "{068D7DC3-8E6E-4951-B9E3-272C641BF0DE}"
55
EndProject

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/examples/client/SendString/src/examples/SendString.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public static int Main(string[] args) {
6565
if (args.Length < 5) {
6666
Console.Error.WriteLine("Usage: SendString <hostname>[:<portnumber>] <exchange> <exchangetype> <routingkey> <message>");
6767
Console.Error.WriteLine("RabbitMQ .NET client version "+typeof(IModel).Assembly.GetName().Version.ToString());
68+
Console.ReadKey();
6869
return 2;
6970
}
7071

@@ -75,6 +76,7 @@ public static int Main(string[] args) {
7576
string message = args[4];
7677

7778
ConnectionFactory cf = new ConnectionFactory();
79+
//cf.Protocol = Protocols.AMQP_0_9_1;
7880
cf.Address = serverAddress;
7981

8082
using (IConnection conn = cf.CreateConnection())
@@ -88,6 +90,8 @@ public static int Main(string[] args) {
8890
routingKey,
8991
null,
9092
Encoding.UTF8.GetBytes(message));
93+
Console.WriteLine("published ok");
94+
Console.ReadKey();
9195
return 0;
9296
}
9397
}

0 commit comments

Comments
 (0)