Microsoft-CISL/Wake — pull request #24 by motus (2014-05-30 21:22:25+00:00)
Title: fix NullPointerException in NettyEventListener.closeChannel()

fixes the following exception (currently happens in many unit tests):

```
2014-05-30 14:00:35 WARNING com.microsoft.wake.remote.transport.netty.NettyChannelHandler exceptionCaught Unexpected exception from downstream.
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333)
at java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1175)
at com.microsoft.wake.remote.transport.netty.AbstractNettyEventListener.closeChannel(AbstractNettyEventListener.java:92)
at com.microsoft.wake.remote.transport.netty.AbstractNettyEventListener.channelClosed(AbstractNettyEventListener.java:84)
at com.microsoft.wake.remote.transport.netty.NettyChannelHandler.channelClosed(NettyChannelHandler.java:100)
at com.microsoft.wake.remote.transport.netty.NettyChannelHandler.handleUpstream(NettyChannelHandler.java:59)
at org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:142)
at com.microsoft.wake.remote.transport.netty.ChunkedReadWriteHandler.handleUpstream(ChunkedReadWriteHandler.java:110)
at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:60)
at org.jboss.netty.handler.codec.frame.FrameDecoder.cleanup(FrameDecoder.java:489)
at org.jboss.netty.handler.codec.frame.FrameDecoder.channelClosed(FrameDecoder.java:372)
at org.jboss.netty.channel.Channels.fireChannelClosed(Channels.java:476)
at org.jboss.netty.channel.Channels$6.run(Channels.java:463)
at org.jboss.netty.channel.socket.ChannelRunnableWrapper.run(ChannelRunnableWrapper.java:41)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processEventQueue(AbstractNioWorker.java:453)
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:330)
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
```