Ah I see. I'll fix that now.
I think the BlacklistFilter should implement all of the upstream
IoFilter callbacks, not just sessionCreated(), to prevent those events
to be propagated to the IoHandler. I have a situation where
messageReceived() is called in my IoHandler even if BlacklistFilter has
blocked the client. I guess it's because it takes some time for the
CloseRequest to be picked up by SocketIoProcessor.
If we don't want to call BlacklistFilter.isBlocked(IoSession) for every
upstream event we could instead add an attribute to the session in
BlacklistFilter.sessionCreated() which tells whether the connection is
blocked or not and use that attribute in all the other events.