diff --git a/src/main/java/org/jboss/netty/group/DefaultChannelGroupFuture.java b/src/main/java/org/jboss/netty/group/DefaultChannelGroupFuture.java index 3f546a9b2c..c96db10f26 100644 --- a/src/main/java/org/jboss/netty/group/DefaultChannelGroupFuture.java +++ b/src/main/java/org/jboss/netty/group/DefaultChannelGroupFuture.java @@ -102,9 +102,15 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture { } this.futures = Collections.unmodifiableMap(futureMap); + for (ChannelFuture f: this.futures.values()) { f.addListener(childListener); } + + // Done on arrival? + if (this.futures.isEmpty()) { + setDone(); + } } DefaultChannelGroupFuture(ChannelGroup group, Map futures) { @@ -113,6 +119,11 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture { for (ChannelFuture f: this.futures.values()) { f.addListener(childListener); } + + // Done on arrival? + if (this.futures.isEmpty()) { + setDone(); + } } public ChannelGroup getGroup() { @@ -140,11 +151,11 @@ public class DefaultChannelGroupFuture implements ChannelGroupFuture { } public synchronized boolean isPartialSuccess() { - return successCount != 0; + return !futures.isEmpty() && successCount != 0; } public synchronized boolean isPartialFailure() { - return failureCount != 0; + return !futures.isEmpty() && failureCount != 0; } public synchronized boolean isCompleteFailure() {