[ https://issues.apache.org/jira/browse/OLINGO-1107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17071029#comment-17071029 ]
Technical Nishant commented on OLINGO-1107: ------------------------------------------- Is the URL with '+' in case of sending Space handled in V2 also. We are on 2.0.11 Olingo. We are facing an issue with creating a filter expression for batch , where the batch request contains a filter expression with space encoded as '+' . When we change this encoding to %20 the filter works. Meaning it can tokenize the operands and forma filter expression. Sample request With '+' Encoding --Batch_1584556492344 Content-Type: application/http Content-Transfer-Encoding: binary GET TransfersCollection?$filter=((SelectedAccounts+eq+%27081699%27))&$format=json HTTP/1.1 Response : ----------------------------------------------------------------- --batch_37a39045-879f-45a5-811e-fed5b48126c5 Content-Type: application/http Content-Transfer-Encoding: binary HTTP/1.1 400 Bad Request DataServiceVersion: 1.0 Content-Type: application/json Content-Length: 120 {"error":\{"code":null,"message":{"lang":"en","value":"Invalid filter expression: '((SelectedAccounts+eq+'081699'))'."}}} --batch_37a39045-879f-45a5-811e-fed5b48126c5-- --Batch_1584556492344-- Sample request With '%20' Encoding --Batch_1584556492344 Content-Type: application/http Content-Transfer-Encoding: binary GET TransfersCollection?$filter=((SelectedAccounts%20eq%20%27081699%27))&$format=json HTTP/1.1 --Batch_1584556492344-- Response is 202 with valid json response. > UriDecoder should use java.net.URLDecoder > ----------------------------------------- > > Key: OLINGO-1107 > URL: https://issues.apache.org/jira/browse/OLINGO-1107 > Project: Olingo > Issue Type: Bug > Components: odata4-server > Affects Versions: (Java) V4 4.3.0 > Reporter: Jon McEwen > Assignee: Ramesh Reddy > Priority: Major > Fix For: (Java) V4 4.4.0 > > > Query filters are incorrectly parsed, because the > org.apache.olingo.commons.core.Decoder doesn't convert '+' to space. > Simple fix is to use java.net.URLDecoder instead (line 85): > {{return URLDecoder.decode(encoded, "UTF-8");}} > Additional unit test: > {code:Java} > @Test > public void decodePlusAsSpace() throws Exception{ > checkOption("%24filter=PaymentStatus+eq+%27Cleared%27", "$filter", > "PaymentStatus eq 'Cleared'"); > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)