|Re: [jetty-users] problem with continuation reuse - how to sync timeout with async task?|
Am 03.11.2014 18:01, schrieb Simone Bordet:
Hi, On Mon, Nov 3, 2014 at 1:51 PM, Christoph Läubrich <laeubi@xxxxxxxxxxxxxx> wrote:I'm using jetty-8 (embedded) and have a servlet that upon request starts some (lengthy) computation in the background and wants to return this to the user after completion. I try to use the https://wiki.eclipse.org/Jetty/Feature/Continuations#Suspend_Continue_Pattern (even though the problem will exits also with suspend/resume). The problem occurs when I set a timeout (I just want the task to wait a certian amaount of time for completion and cancel it then): If the continuation times out I send an error back to the client (see code below), but my async task still holds a reference to the continuation. Since jetty reuses the continuation object after timeout, when the task now finished and tries to contine the continuation I get problems since a) The continuation is reused but for a completely different request b) The continuation is reused but not reasigend yetWhen the continuation expires, you should set a flag to your background task to *not* use the continuation, since the response has already been sent.
Back to the top