netty5/codec-http2/src/main/java/io/netty/handler/codec/http2
Scott Mitchell 83ce8a9187 HTTP/2 Prevent modification of activeStreams while iterating
Motivation:
The Http2Connection interface exposes an activeStreams() method which allows direct iteration over the underlying collection. There are a few places that make copies of this collection to avoid modification while iterating, and a few places that do not make copies. The copy operation can be expensive on hot code paths and also we are not consistently iterating over the activeStreams collection.

Modifications:
- The Http2Connection interface should reduce the exposure of the underlying collection and just expose what is necessary for the interface to function.  This is just a means to iterate over the collection.
- The DefaultHttp2Connection should use this new interface and protect it's internal state while iteration is occurring.

Result:
Reduction in surface area of the Http2Connection interface.  Consistent iteration of the set of active streams.  Concurrent modification exceptions are handled in 1 encapsulated spot.
2015-04-07 20:55:48 -07:00
..
CompressorHttp2ConnectionEncoder.java Include error code and message in GOAWAY events. 2015-03-31 09:18:26 -07:00
DecoratingHttp2ConnectionDecoder.java Cleaning up the initialization of Http2ConnectionHandler 2015-03-30 11:23:02 -07:00
DecoratingHttp2ConnectionEncoder.java Cleaning up the initialization of Http2ConnectionHandler 2015-03-30 11:23:02 -07:00
DecoratingHttp2FrameWriter.java Cleaning up the initialization of Http2ConnectionHandler 2015-03-30 11:23:02 -07:00
DefaultHttp2Connection.java HTTP/2 Prevent modification of activeStreams while iterating 2015-04-07 20:55:48 -07:00
DefaultHttp2ConnectionDecoder.java Fix GOAWAY logic in Http2Encoder and Http2Decoder. 2015-04-07 20:32:28 -07:00
DefaultHttp2ConnectionEncoder.java Fix GOAWAY logic in Http2Encoder and Http2Decoder. 2015-04-07 20:32:28 -07:00
DefaultHttp2FrameReader.java HTTP/2 Decoder reduce preface conditional checks 2015-03-28 18:52:35 -07:00
DefaultHttp2FrameWriter.java Http2DefaultFrameWriter microbenchmark 2015-03-27 13:10:57 -07:00
DefaultHttp2Headers.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
DefaultHttp2HeadersDecoder.java Http2 draft 17 2015-03-25 09:02:15 -07:00
DefaultHttp2HeadersEncoder.java HTTP/2 Headers Code Using String instead of AsciiString 2015-04-03 15:55:44 -07:00
DefaultHttp2HeaderTableListSize.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
DefaultHttp2LocalFlowController.java HTTP/2 Prevent modification of activeStreams while iterating 2015-04-07 20:55:48 -07:00
DefaultHttp2RemoteFlowController.java HTTP/2 Prevent modification of activeStreams while iterating 2015-04-07 20:55:48 -07:00
DefaultHttp2StreamRemovalPolicy.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
DelegatingDecompressorFrameListener.java Include error code and message in GOAWAY events. 2015-03-31 09:18:26 -07:00
EmptyHttp2Headers.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2ClientUpgradeCodec.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2CodecUtil.java Allow non-standard HTTP/2 settings 2015-04-02 11:10:47 -07:00
Http2Connection.java HTTP/2 Prevent modification of activeStreams while iterating 2015-04-07 20:55:48 -07:00
Http2ConnectionAdapter.java Include error code and message in GOAWAY events. 2015-03-31 09:18:26 -07:00
Http2ConnectionDecoder.java Cleaning up the initialization of Http2ConnectionHandler 2015-03-30 11:23:02 -07:00
Http2ConnectionEncoder.java Cleaning up the initialization of Http2ConnectionHandler 2015-03-30 11:23:02 -07:00
Http2ConnectionHandler.java HTTP/2 Prevent modification of activeStreams while iterating 2015-04-07 20:55:48 -07:00
Http2DataWriter.java Http2DefaultFrameWriter direct write instead of copy 2015-02-06 11:56:14 -08:00
Http2Error.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2EventAdapter.java Include error code and message in GOAWAY events. 2015-03-31 09:18:26 -07:00
Http2Exception.java Http/2 Priority on CLOSED stream 2015-03-28 19:10:43 -07:00
Http2Flags.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2FlowController.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2FrameAdapter.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2FrameListener.java Http/2 Priority on CLOSED stream 2015-03-28 19:10:43 -07:00
Http2FrameListenerDecorator.java HTTP/2 Decoder reduce preface conditional checks 2015-03-28 18:52:35 -07:00
Http2FrameLogger.java Using public LogLevel for HTTP/2 frame logging. 2015-03-17 15:10:35 -07:00
Http2FrameReader.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2FrameSizePolicy.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2FrameTypes.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2FrameWriter.java Http2DefaultFrameWriter direct write instead of copy 2015-02-06 11:56:14 -08:00
Http2Headers.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2HeadersDecoder.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2HeadersEncoder.java HTTP/2 Headers Code Using String instead of AsciiString 2015-04-03 15:55:44 -07:00
Http2HeaderTable.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2InboundFrameLogger.java HTTP/2 Decoder reduce preface conditional checks 2015-03-28 18:52:35 -07:00
Http2LifecycleManager.java HTTP/2 LifecycleManager and Http2ConnectionHandler interface clarifications 2015-04-06 14:34:20 -07:00
Http2LocalFlowController.java Zero length data frames should apply flow control. 2015-01-23 11:07:46 -05:00
Http2NoMoreStreamIdsException.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2OrHttpChooser.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2OutboundFrameLogger.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2PromisedRequestVerifier.java Http2 draft 17 2015-03-25 09:02:15 -07:00
Http2RemoteFlowController.java Have FlowState.cancel take a Throwable and code cleanup. 2015-03-19 22:01:02 -07:00
Http2SecurityUtil.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2ServerUpgradeCodec.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
Http2Settings.java Allow non-standard HTTP/2 settings 2015-04-02 11:10:47 -07:00
Http2Stream.java HTTP/2 Closed Streams Conditional Priority Tree Removal 2015-03-31 16:24:25 -07:00
Http2StreamRemovalPolicy.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
HttpToHttp2ConnectionHandler.java Cleaning up the initialization of Http2ConnectionHandler 2015-03-30 11:23:02 -07:00
HttpUtil.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
InboundHttp2ToHttpAdapter.java Include error code and message in GOAWAY events. 2015-03-31 09:18:26 -07:00
InboundHttp2ToHttpPriorityAdapter.java Include error code and message in GOAWAY events. 2015-03-31 09:18:26 -07:00
package-info.java Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00