[ 
https://issues.apache.org/jira/browse/CXF-3518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13034302#comment-13034302
 ] 

Ka-Lok Fung commented on CXF-3518:
----------------------------------

For my use cases, your suggestion will work:

bq. So would checking if the header value starts with \" and if yes then parse 
it using fast indexOf will work well in most/all such cases ? 

However, this is technically allowed (per RFC2616, section 2.2, see quoted-pair)

bq. SomeHeader: "some text, some more text with inlined \""

What do you think of me submitting another patch that works for the following 
use cases:

* {{SomeHeader: "some text, some more text"}}
* {{SomeHeader: "some text","quoted,text","even more text"}}
* {{SomeHeader: "some text, some more text with inlined \""}}

but would fail for the following use case:

* {{SomeHeader: some text,"other quoted, text","blah"}}

Because we're doing text scanning, I'm thinking that the most efficient way to 
do this is actually going character by character in the string (converting to 
{{char[]}} first) than using indexOf. However, I could do a benchmark to see 
which is faster and choose that for the patch :)

What do you think?

> WebClient doesn't handle responses containing a quoted-string in a header 
> correctly
> -----------------------------------------------------------------------------------
>
>                 Key: CXF-3518
>                 URL: https://issues.apache.org/jira/browse/CXF-3518
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.4, 2.3.4
>         Environment: JDK 1.6
>            Reporter: Ka-Lok Fung
>            Priority: Minor
>             Fix For: 2.4.1, 2.3.5
>
>         Attachments: trunk.wc_quote_minimal.diff
>
>
> Similar to CXF-2462, if a request returns a response header that looks like 
> the following:
> bq. {{q: "stuff with commas, and spaces"}}
> WebClient's response.getMetadata() returns 2 values:
> {quote}
> # "stuff with commas
> # and spaces"
> {quote}
> while the correct response should be:
> {quote}
> # stuff with commas, and spaces
> {quote}
> Here's the WebClient code which reproduces the issue (as long as the server 
> response contains a header that returns the header value above):
> {code:Java}
> Response r = WebClient.create(new 
> URI("http://localhost:8080";)).path("key/quoted").get();
> List<Object> l = r.getMetadata().get("q");
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to