Florent Albert created OLINGO-1619:
--------------------------------------

             Summary: [Regression] Batch part body containining binary data is 
altered
                 Key: OLINGO-1619
                 URL: https://issues.apache.org/jira/browse/OLINGO-1619
             Project: Olingo
          Issue Type: Bug
          Components: odata4-server
    Affects Versions: (Java) V4 4.9.0
            Reporter: Florent Albert


Use case: Batch request uploading a file (upsert media entity).

The batch request body will contain the serialized file as binary. For example:

 
{noformat}
--batch
Content-Type: multipart/mixed; boundary=changeset--changeset

Content-Type: application/http
Content-Transfer-Encoding:binary
Content-Id: 001

POST Documents HTTP/1.1
Content-Type: application/json

{
    "Name":"Doc OData batch",
}


--changeset
Content-Type: application/http
Content-Transfer-Encoding:binary
Content-Id: 002

PUT $001/PrimaryContent HTTP/1.1
Content-Type: multipart/form-data; boundary=attachmentBoundary
Content-Encoding: binary

--attachmentBoundary
Content-Disposition: form-data;name="file1"; filename="test.docx"
Content-Type: 
application/vnd.openxmlformats-officedocument.wordprocessingml.document
Content-Transfer-Encoding: binary
Content-Encoding: binary

<serialized file content here>
--attachmentBoundary--


--changeset--
--batch--{noformat}
 

 

In Olingo 4.9.0, when the batch request parts are deserialized by 
FixedFormatDeserializer.parseBatchRequest(InputStream, String, BatchOptions), 
the bodies of the resulting ODataRequest are different from the original 
request sent.

This is a regression compared to Olingo 4.7.1, introduced by the following 
commit: 
[https://github.com/apache/olingo-odata4/commit/8bd229b40e30710525a056a4c395caf2565fe353].
 It assumes a request body can only be text.

Using the 4.7.1 version of BatchLineReader fixed the issue.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to