[
https://issues.apache.org/jira/browse/OLINGO-760?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14695060#comment-14695060
]
Christian Amend commented on OLINGO-760:
----------------------------------------
If you request debug output the createResponse method will find an entity for
the debug output so it is not a bug that suddenly you find an entity at the
response.
I think it is more interesting that now the createResponse method is called at
all which was not the case before. I can`t explain why this is happening so I
will try to reproduce this behaviour locally. This might take some time.
If you like you could test if other requests still fail after you request the
debug output for the DELETE request. If not then we at least know that the
issue is that the createResponse is not called at all for plain DELETE requests.
Best Regards,
Christian
> DELETE request through ODataServlet does never finish
> -----------------------------------------------------
>
> Key: OLINGO-760
> URL: https://issues.apache.org/jira/browse/OLINGO-760
> Project: Olingo
> Issue Type: Bug
> Affects Versions: V2 2.0.4
> Environment: WildFly 9.0.1 final
> Reporter: Ronny Bremer
> Assignee: Christian Amend
>
> I am using the ODataServlet, which extends HttpServlet and overrides
> "service" to handle the various OData requests.
> All GET/PUT/PATCH/MERGE operations work flawlessly, however, when it comes to
> DELETE we observe the following behaviour:
> Client sends a delete request to the servlet, like this:
> DELETE /myear/OData2Service.svc/Tests('124') HTTP/1.1
> Host: loaclhost:8080
> Connection: keep-alive
> Accept: application/json, text/javascript, */*; q=0.01
> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4)
> AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
> Content-Type: application/json
> Accept-Encoding: gzip, deflate, sdch
> Accept-Language: en-US,de;q=0.8,en-US;q=0.6,en;q=0.4
> WildFly dispatches the request to our ODataServlet and it processes it inside
> the "service" method. Eventually my deleteEntity handler gets called and I do
> the magic in my data model.
> According to the OData v2 standard I should return 204 (NO_CONTENT) on
> success, so my final line of code looks like:
> return ODataResponse.status(HttpStatusCodes.NO_CONTENT).build();
> which will return control to the ODataServlet.
> At that moment WildFly is answering to the client with the following headers:
> HTTP/1.1 204 No Content
> DataServiceVersion: 2.0
> X-Powered-By: Undertow/1
> Server: WildFly/9
> Date: Thu, 13 Aug 2015 08:09:09 GMT
> Connection: keep-alive
> Content-Length: 0
> So everything seems in order. But somehow the server has not fully handled
> the request, because any other request following on that connection will just
> "hang". So I can send new requests to WildFly but they will never get passed
> into the ODataServlet.service method.
> To me this might be a bug inside the "service" method of the ODataServlet,
> possibly not returning the right info or enough info for WildFly to return
> control back to the client.
> BTW: it doesn't matter if the next request is valid or not, even just putting
> in "garbage" (which should lead to an "HTTP/1.1 400 Bad Request" answer, will
> be ignored by WildFly.
> Is there any way to track this down further?
> Thank you for your time,
> Ronny
> Edit: The usage of the term "my ODataServlet" might be confusing, I am using
> the original ODataServlet class from the OLingo library.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)