Each handler of a Channel is executed in the worker thread by default. So if you need todo any blocking work you need to todo it in an other Thread. How you do this depends on if you use netty 3 or netty 4.
In netty 3 you would use the ExecutorHandler. In netty 4 you would specify an other EventExecutor when adding the ChannelHandler to the ChannelPipeline.