private HTTPStream syn(boolean close) {
   HTTPStream stream = new HTTPStream(1, (byte) 0, session, null);
   StreamFrameListener streamFrameListener =
       proxyEngineSelector.onSyn(stream, new SynInfo(headers, close));
   stream.setStreamFrameListener(streamFrameListener);
   return stream;
 }
 @Override
 public boolean content(ByteBuffer item) {
   if (content == null) {
     stream = syn(false);
     content = item;
   } else {
     stream.getStreamFrameListener().onData(stream, toDataInfo(item, false));
   }
   return false;
 }
 @Override
 public boolean messageComplete() {
   if (stream == null) {
     assert content == null;
     if (headers.isEmpty())
       proxyEngineSelector.onGoAway(session, new GoAwayReceivedInfo(0, SessionStatus.OK));
     else syn(true);
   } else {
     stream.getStreamFrameListener().onData(stream, toDataInfo(content, true));
   }
   headers.clear();
   stream = null;
   content = null;
   return false;
 }