Hi Benson
On 11/01/16 11:42, Benson Margulies wrote:
Sergey,
I annotate @Suspended. So it is suspended on the first call.
It is not, believe me :-) because this is how I implemented it.
The runtime does not have to physically suspend a call, given that the
method can immediately call AsyncResponse.resume(). JAXRSInvoker will
only suspend the thread if no resume/cancel was called by the time the
method returns. The runtimes are allowed to optimize like this.
The quote I read from the spec says that returned values from @Suspended
calls are ignored. It did not say what the spec says about exceptions from
those calls. If they are also supposed to be ignored, then a big fat WARN
log message would be what I have in mind.
The exceptions escaped from a method are supposed to be caught, 'the
returned values are ignored' is probably a reference to a 'void' return
type, but of course a method can immediately do
asyncResponse.resume(myResponse).
Cheers, Sergey
On Mon, Jan 11, 2016 at 5:17 AM, Sergey Beryozkin <sberyoz...@gmail.com>
wrote:
Hi Benson
The very first call into this method does not suspend the continuation, so
there's no need to resume it if the exception is returned.
Do you see a mapped exception response not being returned ? Please clarify
Cheers, Sergey
On 02/01/16 02:01, Benson Margulies wrote:
If I am in a method with an @Suspended AsyncResponse, and I neglect to
catch an exception, CXF runs mappers but they don't do any good, of
course, because nothing resumes the response.
How about if CXF instead logged at ERROR about any exception thrown
through a suspended resource method? I'm assuming that there's no way
to arrange for any uncaught exception to end up as
asyncResponse.resume(e).
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/