Skip to content

Commit a0600df

Browse files
Merge pull request #258 from rabbitmq/rabbitmq-dotnet-client-257
Handle potential NullReferenceException in HeartbeatReadTimerCallback
2 parents ffaa231 + 6790e6a commit a0600df

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,17 +1024,21 @@ public void HeartbeatReadTimerCallback(object state)
10241024
TerminateMainloop();
10251025
FinishClose();
10261026
}
1027-
else
1027+
else if(_heartbeatReadTimer != null)
10281028
{
10291029
_heartbeatReadTimer.Change(Heartbeat * 1000, Timeout.Infinite);
10301030
}
10311031
}
10321032
catch (ObjectDisposedException)
10331033
{
1034-
10351034
// timer is already disposed,
10361035
// e.g. due to shutdown
10371036
}
1037+
catch (NullReferenceException)
1038+
{
1039+
// timer has already been disposed from a different thread after null check
1040+
// this event should be rare
1041+
}
10381042
}
10391043

10401044
public void HeartbeatWriteTimerCallback(object state)

0 commit comments

Comments
 (0)