private Object decode0(IoBuffer buffer, MemcachedTCPSession session) {
   if (session.getCurrentCommand().decode(session, buffer.buf())) {
     final Command command = session.getCurrentCommand();
     session.setCurrentCommand(null);
     return command;
   }
   return null;
 }
 public Object decode(IoBuffer buffer, Session origSession) {
   MemcachedTCPSession session = (MemcachedTCPSession) origSession;
   if (session.getCurrentCommand() != null) {
     return decode0(buffer, session);
   } else {
     session.takeCurrentCommand();
     if (session.getCurrentCommand() == null) return null;
     return decode0(buffer, session);
   }
 }