diff --git a/src/main/java/com/rabbitmq/client/impl/ChannelManager.java b/src/main/java/com/rabbitmq/client/impl/ChannelManager.java
index 59f7bb3fee..fb0490eade 100644
--- a/src/main/java/com/rabbitmq/client/impl/ChannelManager.java
+++ b/src/main/java/com/rabbitmq/client/impl/ChannelManager.java
@@ -39,9 +39,9 @@ public class ChannelManager {
/** Monitor for _channelMap
and channelNumberAllocator
*/
private final Object monitor = new Object();
- /** Mapping from 1.._channelMax
to {@link ChannelN} instance */
- private final Map _channelMap = new HashMap();
- private final IntAllocator channelNumberAllocator;
+ /** Mapping from 1.._channelMax
to {@link ChannelN} instance */
+ private final Map _channelMap = new HashMap();
+ private final IntAllocator channelNumberAllocator;
private final ConsumerWorkService workService;
@@ -70,6 +70,8 @@ public ChannelManager(ConsumerWorkService workService, int channelMax, ThreadFac
public ChannelManager(ConsumerWorkService workService, int channelMax, ThreadFactory threadFactory, MetricsCollector metricsCollector) {
+ if (channelMax < 0)
+ throw new IllegalArgumentException("create ChannelManager: 'channelMax' must be greater or equal to 0.");
if (channelMax == 0) {
// The framing encoding only allows for unsigned 16-bit integers
// for the channel number