@Override
 public final void removeListener(final ChannelGroupFutureListener listener) {
   synchronized (conditionSetLock) {
     if (!conditionSetFlag) {
       listeners.remove(listener);
     }
   }
   if (conditionSetFlag) {
     if (condition) {
       backedChannelGroupFuture.removeListener(listener);
     }
   }
 }