You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Michael Bolz (JIRA)" <ji...@apache.org> on 2016/10/25 13:05:58 UTC

[jira] [Closed] (OLINGO-774) Handling of special characters in FunctionImportParameter

     [ https://issues.apache.org/jira/browse/OLINGO-774?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Bolz closed OLINGO-774.
-------------------------------
    Resolution: Later

> Handling of special characters in FunctionImportParameter
> ---------------------------------------------------------
>
>                 Key: OLINGO-774
>                 URL: https://issues.apache.org/jira/browse/OLINGO-774
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-core
>    Affects Versions: V2 2.0.4
>            Reporter: Michael Bolz
>            Assignee: Michael Bolz
>            Priority: Minor
>
> As specified in OData V2 {{Edm.String}} {{FunctionImportParameter}} can contain UTF-8 characters (see [spec|http://www.odata.org/documentation/odata-version-2-0/overview/#AbstractTypeSystem]).
> In Olingo V2 for a request with a Function Parameter e.g. {{q='Wa|lter'}} the use of (some) special characters (here: {{|}}) leads to an exception.
> As workaround the parameter can be send as URL encoded value.
> For the {{ODataServlet}} an {{IllegalArgumentException}} is thrown (stack trace below):
> {code}
> ERROR ScenarioErrorCallback - Internal Server Error
> java.lang.IllegalArgumentException
> at java.net.URI.create(URI.java:841)
> at org.apache.olingo.odata2.core.servlet.RestUtil.buildRequestUri(RestUtil.java:266)
> at org.apache.olingo.odata2.core.servlet.RestUtil.buildODataPathInfo(RestUtil.java:222)
> at org.apache.olingo.odata2.core.servlet.ODataServlet.handleRequest(ODataServlet.java:184)
> at org.apache.olingo.odata2.core.servlet.ODataServlet.handle(ODataServlet.java:115)
> at org.apache.olingo.odata2.core.servlet.ODataServlet.service(ODataServlet.java:85)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:695)
> Caused by: java.net.URISyntaxException: Illegal character in query at index 74: http://localhost:8080/ReferenceScenarioNonJaxrs.svc/EmployeeSearch?q=%27Wa|lter%27
> at java.net.URI$Parser.fail(URI.java:2810)
> at java.net.URI$Parser.checkChars(URI.java:2983)
> at java.net.URI$Parser.parseHierarchical(URI.java:3073)
> at java.net.URI$Parser.parse(URI.java:3015)
> at java.net.URI.<init>(URI.java:577)
> at java.net.URI.create(URI.java:839)
> ... 23 more
> java.lang.IllegalArgumentException
> at java.net.URI.create(URI.java:841)
> at org.apache.olingo.odata2.core.servlet.RestUtil.buildRequestUri(RestUtil.java:266)
> at org.apache.olingo.odata2.core.servlet.RestUtil.buildODataPathInfo(RestUtil.java:222)
> at org.apache.olingo.odata2.core.servlet.ODataServlet.handleRequest(ODataServlet.java:184)
> at org.apache.olingo.odata2.core.servlet.ODataServlet.handle(ODataServlet.java:115)
> at org.apache.olingo.odata2.core.servlet.ODataServlet.service(ODataServlet.java:85)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:695)
> Caused by: java.net.URISyntaxException: Illegal character in query at index 74: http://localhost:8080/ReferenceScenarioNonJaxrs.svc/EmployeeSearch?q=%27Wa|lter%27
> at java.net.URI$Parser.fail(URI.java:2810)
> at java.net.URI$Parser.checkChars(URI.java:2983)
> at java.net.URI$Parser.parseHierarchical(URI.java:3073)
> at java.net.URI$Parser.parse(URI.java:3015)
> at java.net.URI.<init>(URI.java:577)
> at java.net.URI.create(URI.java:839)
> ... 23 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)