[ 
https://issues.apache.org/jira/browse/OLINGO-1066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15976534#comment-15976534
 ] 

Kavindu Dodanduwa commented on OLINGO-1066:
-------------------------------------------

Further more I have come across following concern over streaming. [With 
reference to V4.3.0]

According to the Olingo implementation service developer can provide an 
implementation of ODataContentWriteErrorCallback which can be used to 
invalidate the response as required by OData specification. 

But if we go through the implementation, write method of ODataWritableContent 
[Line 72] only catch SerializerException.  So if our provided implementation to 
be called, the thrown exception should be of type SerializerException. Adding 
to that, when we use streaming we are supposed to implement EntityIterator and 
provide that for the serializer. This implementation is done by service 
developer and that could throw any type of valid exception (ex:- SqlException). 
If such an exception is thrown, it won’t be caught and forwarded to callback 
handler. 

Going furthermore, if we check how exceptions are handled in top level through 
ODataHttpHandlerImpl [Line 171] we only catch IOExceptions. So if a service 
implementer does not wrap the exception inside a SerializerException, it won’t 
be caught from any provided mechanism.

I think this need to be discussed and improved with this refactoring


> Stream support for Primitive and Complex type collections
> ---------------------------------------------------------
>
>                 Key: OLINGO-1066
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1066
>             Project: Olingo
>          Issue Type: New Feature
>          Components: odata4-server
>    Affects Versions: (Java) V4 4.4.0
>            Reporter: Kavindu Dodanduwa
>            Assignee: Michael Bolz
>            Priority: Minor
>              Labels: features
>         Attachments: patch.diff, patch-refactoring.diff
>
>
> Olingo currently doesn't support streaming support for serialization of 
> primitive and complex collection type responses.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to