org.apache.coyote.http11.Http11NioProtocol.Http11ConnectionHandler code segment: ================================== @Override public void release(SocketWrapper<NioChannel> socket) { Http11NioProcessor processor = connections.remove(socket); if (processor != null) { processor.recycle(); recycledProcessors.offer(processor); } } ================================== should be: ================================== @Override public void release(SocketWrapper<NioChannel> socket) { Http11NioProcessor processor = connections.remove(socket.getSocket()); if (processor != null) { processor.recycle(); recycledProcessors.offer(processor); } } ================================== type of connections is ConcurrentHashMap<NioChannel, Http11NioProcessor> , not ConcurrentHashMap<SocketWrapper<NioChannel>, Http11NioProcessor>.
Thanks for the report. This has been fixed in trunk and 7.0.x. I couldn't see a way to trigger this in normal operation. Did you see a memory leak due to this or did you find it some other way?