(boolean headersEndStream)
| 711 | |
| 712 | |
| 713 | final void receivedStartOfHeaders(boolean headersEndStream) { |
| 714 | if (headerState == HEADER_STATE_START) { |
| 715 | headerState = HEADER_STATE_PSEUDO; |
| 716 | handler.getHpackDecoder().setMaxHeaderCount(handler.getProtocol().getMaxHeaderCount()); |
| 717 | handler.getHpackDecoder().setMaxHeaderSize(handler.getProtocol().getMaxHeaderSize()); |
| 718 | } else if (headerState == HEADER_STATE_PSEUDO || headerState == HEADER_STATE_REGULAR) { |
| 719 | // Trailer headers MUST include the end of stream flag |
| 720 | if (!headersEndStream) { |
| 721 | headerException = new StreamException( |
| 722 | sm.getString("stream.trailerHeader.noEndOfStream", getConnectionId(), getIdAsString()), |
| 723 | Http2Error.PROTOCOL_ERROR, getIdAsInt()); |
| 724 | } |
| 725 | // Always process headers to keep HPack encoder/decoder in sync |
| 726 | headerState = HEADER_STATE_TRAILER; |
| 727 | handler.getHpackDecoder().setMaxHeaderCount(handler.getProtocol().getMaxTrailerCount()); |
| 728 | handler.getHpackDecoder().setMaxHeaderSize(handler.getProtocol().getMaxTrailerSize()); |
| 729 | } |
| 730 | // Parser will catch attempt to send a headers frame after the stream |
| 731 | // has closed. |
| 732 | state.receivedStartOfHeaders(); |
| 733 | } |
| 734 | |
| 735 | |
| 736 | @Override |
no test coverage detected