{"action":"created","issue":{"url":"https://api.github.com/repos/netty/netty/issues/7969","repository_url":"https://api.github.com/repos/netty/netty","labels_url":"https://api.github.com/repos/netty/netty/issues/7969/labels{/name}","comments_url":"https://api.github.com/repos/netty/netty/issues/7969/comments","events_url":"https://api.github.com/repos/netty/netty/issues/7969/events","html_url":"https://github.com/netty/netty/issues/7969","id":326312556,"number":7969,"title":"Make Http2UnknownFrame extend Http2StreamFrame rather than Http2Frame","user":{"login":"Bennett-Lynch","id":11811448,"avatar_url":"https://avatars2.githubusercontent.com/u/11811448?v=4","gravatar_id":"","url":"https://api.github.com/users/Bennett-Lynch","html_url":"https://github.com/Bennett-Lynch","followers_url":"https://api.github.com/users/Bennett-Lynch/followers","following_url":"https://api.github.com/users/Bennett-Lynch/following{/other_user}","gists_url":"https://api.github.com/users/Bennett-Lynch/gists{/gist_id}","starred_url":"https://api.github.com/users/Bennett-Lynch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bennett-Lynch/subscriptions","organizations_url":"https://api.github.com/users/Bennett-Lynch/orgs","repos_url":"https://api.github.com/users/Bennett-Lynch/repos","events_url":"https://api.github.com/users/Bennett-Lynch/events{/privacy}","received_events_url":"https://api.github.com/users/Bennett-Lynch/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-05-24T22:02:57Z","updated_at":"2018-05-27T17:19:29Z","closed_at":null,"author_association":"NONE","body":"This is a follow-up issue regarding: https://github.com/netty/netty/issues/7860\r\n\r\n### Expected behavior\r\n\r\nWriting an `Http2UnknownFrame` to a child channel will be written to the parent channel and underlying HTTP/2 connection via `Http2MultiplexCodec`.\r\n\r\nWhen `Http2MultiplexCodec` reads an `Http2UnknownFrame`, it will be propagated to the correct child channel.\r\n\r\n### Actual behavior\r\n\r\n`Http2MultiplexCodec` rejects the write since `Http2UnknownFrame` is not an `instanceof Http2StreamFrame`.\r\n\r\nhttps://github.com/netty/netty/blob/dfeb4b15b587bf5298555e969a01378853efab8f/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodec.java#L1021-L1028\r\n\r\n`Http2MultiplexCodec` does not propagate reads to child channels since `Http2UnknownFrame` is not an `instanceof Http2StreamFrame`.\r\n\r\nhttps://github.com/netty/netty/blob/dfeb4b15b587bf5298555e969a01378853efab8f/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2MultiplexCodec.java#L219-L221\r\n\r\n### Proposal\r\n\r\n`Http2UnknownFrame` should extend `Http2StreamFrame`, rather than `Http2Frame`, as it already defines the two stream-related methods that the two interfaces differ in.\r\n\r\nShould it possibly declare an `isEndStream` method as well, similar to `Http2DataFrame`?"},"comment":{"url":"https://api.github.com/repos/netty/netty/issues/comments/392348757","html_url":"https://github.com/netty/netty/issues/7969#issuecomment-392348757","issue_url":"https://api.github.com/repos/netty/netty/issues/7969","id":392348757,"user":{"login":"normanmaurer","id":439362,"avatar_url":"https://avatars3.githubusercontent.com/u/439362?v=4","gravatar_id":"","url":"https://api.github.com/users/normanmaurer","html_url":"https://github.com/normanmaurer","followers_url":"https://api.github.com/users/normanmaurer/followers","following_url":"https://api.github.com/users/normanmaurer/following{/other_user}","gists_url":"https://api.github.com/users/normanmaurer/gists{/gist_id}","starred_url":"https://api.github.com/users/normanmaurer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/normanmaurer/subscriptions","organizations_url":"https://api.github.com/users/normanmaurer/orgs","repos_url":"https://api.github.com/users/normanmaurer/repos","events_url":"https://api.github.com/users/normanmaurer/events{/privacy}","received_events_url":"https://api.github.com/users/normanmaurer/received_events","type":"User","site_admin":false},"created_at":"2018-05-27T17:19:29Z","updated_at":"2018-05-27T17:19:29Z","author_association":"MEMBER","body":"@Bennett-Lynch let it extend `Http2StreamFrame` sounds like the correct thing to do. Would you be interested in proving a PR ?\r\n\r\nI think I would leave the `isEndStream` as it is and just use the `Http2Flags` for it."}}
{"actor":{"display_login":"normanmaurer"}}