Hi Michael,

The Server implementation keeps a list of HttpConnection instances (which hold SelektionKeyImpl instances) per connection. After accepting a new connection a HttpConnection is created and added to the list. It is never removed if the request turns out to be BAD.

Other instances unnecessarily held as a result of holding the HttpConnection:
  sun.nio.ch.SocketChannelImpl
  sun.nio.ch.SelectionKeyImpl
  java.nio.HeapByteBuffer & [B
  sun.net.httpserver.Request$WriteStream
  sun.net.httpserver.Request$ReadStream.

The solution is to remote BAD connections from the list.

Webrev:
  http://cr.openjdk.java.net/~chegar/6946825/webrev.00/webrev/

Note: There is no regression test for this problem. The fix ( and problem ) was manually verified by looking at a heap histogram.

-Chris.

Reply via email to