-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
[Java][client] Fix feign classcastexception when getting headers #16745
[Java][client] Fix feign classcastexception when getting headers #16745
Conversation
…Collection<String> and not List<String>) Delete unused classes
Refactor to avoid creating the headers map when ApiResponse is not used
|
||
private int status; | ||
|
||
public HttpResponse(Map<String, Collection<String>> headers, T body, int status) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No longer used, replaced by ApiResponse
|
||
import org.openapitools.client.model.HttpResponse; | ||
|
||
public class JacksonResponseDecoder extends JacksonDecoder { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No longer used, replaced by ApiResponseDecoder
@@ -49,8 +49,6 @@ nb-configuration.xml | |||
/target | |||
/generated-files | |||
test-output/ | |||
nbactions.xml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I removed a bunch of duplicates
thanks for the PR with the detailed explanation. lgtm |
…nAPITools#16745) * Avoid ClassCastException when getting headers (the header values are Collection<String> and not List<String>) Delete unused classes * Remove feign10x * Add unit test Refactor to avoid creating the headers map when ApiResponse is not used
This affects the feign apis that return ApiResponse which contains extra request info such as headers and status.
The current implemenation holds the headers in a Map<String, List> but feign uses Map<String, Collection>. Since the headers are copied as they are in ApiResponseDecoder.java when one tries to get them one gets a ClassCastException. That is because Feign wrapps the headers in an unmodifiableCollection, see here. Regardless of the underlying implementation the correct type is Map<String, Collection> but since the ApiResponseDecoder uses raw types, this type missmatch is hidden. This has also been addressed. See here Feign's response for context.
I also deleted feign10x sample folder since it seems it not in use anymore. The generator only supports Feign 10.x+ so there no need for something version specific.
@bbdouglas @sreeshas @jfiala @lukoyanov @cbornet @jeff9finger @karismann @Zomzog @lwlee2608 @martin-mfg
PR checklist
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*
.For Windows users, please run the script in Git BASH.
master
(upcoming 7.1.0 minor release - breaking changes with fallbacks),8.0.x
(breaking changes without fallbacks)