Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cope with misbehaving Http2Headers implementations #12289

Merged
merged 2 commits into from Apr 6, 2022

Conversation

chrisvest
Copy link
Contributor

@chrisvest chrisvest commented Apr 6, 2022

Cope with misbehaving Http2Headers implementations

Motivation:
Some integrators may choose to use custom Http2Headers implementations, and might not implement all methods, or might not anticipate the ways in which we'll use the methods.
For instance, this was a problem that affected GRPC.

Modification:
To cope with this, we guard our newly added call to Http2Headers.contains() call with an instanceof check to see if we're familiar with the implementation, and fall back to checking the direct accessor methods if not.

Result:
Avoid breaking those who wish to use old versions of GRPC with newer versions of Netty, or situations like that.

@chrisvest chrisvest added this to the 4.1.76.Final milestone Apr 6, 2022
Motivation:
Some integrators may choose to use custom `Http2Headers` implementations, and might not implement all methods, or might not anticipate the ways in which we'll use the methods.
For instance, this was a problem that affected GRPC.

Modification:
To cope with this, we guard our newly added call to `Http2Headers.contains()` call with an `instanceof` check to see if we're familiar with the implementation, and fall back to checking the direct accessor methods if not.

Result:
Avoid breaking those who wish to use old versions of GRPC with newer versions of Netty, or situations like that.
@chrisvest
Copy link
Contributor Author

@normanmaurer How about this?

Copy link
Member

@normanmaurer normanmaurer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a good workaround

Copy link
Member

@idelpivnitskiy idelpivnitskiy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@chrisvest chrisvest merged commit cf8b717 into netty:4.1 Apr 6, 2022
@chrisvest chrisvest deleted the 41-h2-headers branch April 6, 2022 23:36
chrisvest added a commit that referenced this pull request Apr 6, 2022
Motivation:
Some integrators may choose to use custom `Http2Headers` implementations, and might not implement all methods, or might not anticipate the ways in which we'll use the methods.
For instance, this was a problem that affected GRPC.

Modification:
To cope with this, we guard our newly added call to `Http2Headers.contains()` call with an `instanceof` check to see if we're familiar with the implementation, and fall back to checking the direct accessor methods if not.

Result:
Avoid breaking those who wish to use old versions of GRPC with newer versions of Netty, or situations like that.
chrisvest added a commit that referenced this pull request Apr 7, 2022
This reverts commit 3d4ed31.
Reverted because it was a backwards-compatibility work-around for 4.1
minor versions. Such hacks are unnecessary in main.
raidyue pushed a commit to raidyue/netty that referenced this pull request Jul 8, 2022
Motivation:
Some integrators may choose to use custom `Http2Headers` implementations, and might not implement all methods, or might not anticipate the ways in which we'll use the methods.
For instance, this was a problem that affected GRPC.

Modification:
To cope with this, we guard our newly added call to `Http2Headers.contains()` call with an `instanceof` check to see if we're familiar with the implementation, and fall back to checking the direct accessor methods if not.

Result:
Avoid breaking those who wish to use old versions of GRPC with newer versions of Netty, or situations like that.
franz1981 pushed a commit to franz1981/netty that referenced this pull request Aug 22, 2022
Motivation:
Some integrators may choose to use custom `Http2Headers` implementations, and might not implement all methods, or might not anticipate the ways in which we'll use the methods.
For instance, this was a problem that affected GRPC.

Modification:
To cope with this, we guard our newly added call to `Http2Headers.contains()` call with an `instanceof` check to see if we're familiar with the implementation, and fall back to checking the direct accessor methods if not.

Result:
Avoid breaking those who wish to use old versions of GRPC with newer versions of Netty, or situations like that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants