@Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { final Channel channel = ctx.getChannel(); Message m = (Message) e.getMessage(); Tuple t = cb.receive(m); if (m.type() == Type.DEREG) { channel.close(); } if (t != null) { if (m.type() == Type.REG) { PhysicalLocation pl = new PhysicalLocation(m.source().logId(), (Integer) t.get(0)); plMap.put(pl, channel); ctx.setAttachment(pl); } Message rsp = new Message(m.type(), m.getAck(), m.destination(), m.source(), t); channel.write(rsp); } }