You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Tobias Stolzenberger (JIRA)" <ji...@apache.org> on 2016/04/21 19:16:25 UTC

[jira] [Closed] (OLINGO-926) Batch Request fails if request line is absolute

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

Tobias Stolzenberger closed OLINGO-926.
---------------------------------------
    Resolution: Workaround

> Batch Request fails if request line is absolute
> -----------------------------------------------
>
>                 Key: OLINGO-926
>                 URL: https://issues.apache.org/jira/browse/OLINGO-926
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-core
>    Affects Versions: V2 2.0.6
>            Reporter: Tobias Stolzenberger
>            Assignee: Michael Bolz
>
> Hi,
> I'm using Olingo version 2.0.6 with JPA adapter. I'm sending a batch message to the server that causes an Exception with text: Invalid URI: line '6'
> The reason for that is that parsing of the HTTP status line seems not to be able to handle absolute path values.
> This is the request line I'm sending:
> {code:borderStyle=solid}
> GET /com.sap.icmobile.demo.application/odata/referenceservice/RootEntity1s HTTP/1.1
> {code}
> If I use the relative URI instead the batch message get processed without an error:
> {code:borderStyle=solid}
> GET RootEntity1s HTTP/1.1
> {code}
> I had a look in OData V2 spec: http://www.odata.org/documentation/odata-version-2-0/batch-processing/
> In the example on this page you see two different variants of the request line:
> {code:borderStyle=solid}
> GET /service/Customers('ALFKI') HTTP/1.1
> {code}
> {code:borderStyle=solid}
> GET service/Products HTTP/1.1
> {code}
> It's Interesting to see that in first example there is a leading slash while in the second example there isn't. If you have a look at the HTTP 1.1 spec you see that the leading slash seems to be the correct format: https://tools.ietf.org/html/rfc7230#section-5.3
> This is the complete HTTP request body that I send:
> {code:borderStyle=solid}
> POST /mypath/odata/referenceservice/$batch HTTP/1.1
> Content-Type: multipart/mixed; boundary=batch_f90a925d-f990-4b20-bbc3-057f6eb1c692
> X-CSRF-Token: ...
> ...
> --batch_f90a925d-f990-4b20-bbc3-057f6eb1c692
> Content-Disposition: form-data; name="1"; filename="1"
> Content-Type: application/http
> Content-Transfer-Encoding: binary
> GET /mypath/odata/referenceservice/RootEntity1s HTTP/1.1
> Host: myhost
> Accept: application/atom+xml;type=feed
> --batch_f90a925d-f990-4b20-bbc3-057f6eb1c692--
> {code}
> And this is the Exception stacktrace:
> {code:borderStyle=solid}
>  Invalid URI: line '6'. - org.apache.olingo.odata2.api.batch.BatchException: Invalid URI: line '6'.
> 	at org.apache.olingo.odata2.core.batch.v2.BatchTransformatorCommon$HttpRequestStatusLine.parseUri(BatchTransformatorCommon.java:216)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchTransformatorCommon$HttpRequestStatusLine.parse(BatchTransformatorCommon.java:165)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchTransformatorCommon$HttpRequestStatusLine.<init>(BatchTransformatorCommon.java:156)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchRequestTransformator.createRequest(BatchRequestTransformator.java:85)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchRequestTransformator.processQueryOperation(BatchRequestTransformator.java:78)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchRequestTransformator.transform(BatchRequestTransformator.java:52)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchParser.parseBatch(BatchParser.java:86)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchParser.parse(BatchParser.java:64)
> 	at org.apache.olingo.odata2.core.batch.v2.BatchParser.parseBatchRequest(BatchParser.java:58)
> 	at org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.parseBatchRequest(ProviderFacadeImpl.java:237)
> 	at org.apache.olingo.odata2.api.ep.EntityProvider.parseBatchRequest(EntityProvider.java:887)
> {code}
> Regards,
> Tobias



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