[
https://issues.apache.org/jira/browse/OLINGO-591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14377802#comment-14377802
]
Michael Bolz commented on OLINGO-591:
-------------------------------------
Hi [~jwilliams],
based on your suggestion I provided a patch and pushed it (with commit id:
[f10670a|https://git1-us-west.apache.org/repos/asf?p=olingo-odata2.git;a=commit;h=f10670a8ac9521b274656f5f46ddd81651c2d25d]).
Can you please take a look into and give feedback.
Best regards,
Michael
> RestUtil query parameter extraction methods incorrectly extract an empty
> parameter when evaluating a zero-length query string
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: OLINGO-591
> URL: https://issues.apache.org/jira/browse/OLINGO-591
> Project: Olingo
> Issue Type: Bug
> Affects Versions: V2 2.0.3
> Reporter: Jamie Williams
> Assignee: Michael Bolz
> Priority: Minor
> Fix For: V2 2.0.4
>
>
> When org.apache.olingo.odata2.core.servlet.RestUtil.extractQueryParameters is
> invoked with a zero-length String value for the 'queryString' parameter the
> method incorrectly adds a Map entry with a zero-length String key and a
> corresponding zero-length String value.
> The same is true of the
> org.apache.olingo.odata2.core.servlet.RestUtil.extractAllQueryParameters, but
> in that case the Map entry value is a List containing a single empty String.
> This can cause incorrect request parsing results if the returned Maps are
> supplied as to org.apache.olingo.odata2.core.uri.UriParserImpl.parse or
> org.apache.olingo.odata2.core.uri.UriParserImpl.parseAll. As
> org.apache.olingo.odata2.core.uri.UriParserImpl.distributeQueryParameters
> will simply interpret a key that doesn't start with "$" as a non-system query
> option, they empty key/value pair will be added to the otherQueryParameters
> Map which will in turn be added to UriInfo.customQueryParameters in
> org.apache.olingo.odata2.core.uri.UriParserImpl.handleOtherQueryParammeters.
> The final result is that the returned UriInfo will be an incorrect
> representation of the request URI.
> The problem in each step is from a lack of checking for String emptiness.
> This is most easily solved by adding that check in addition to the existing
> null checks in the two RestUtil methods.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)