I never saw a response to this, but it does seem like a problem.

I don't love the idea of a special exception used purely to handle control
flow, but I can't think of anything better off-hand.

--tim

On Sat, May 22, 2010 at 8:05 PM, Tal Liron <[email protected]>wrote:

> Hi Jerome,
>
> > 2. There is a TaskService associated to your application that you could
> > leverage. It separates threads usage from tasks to process (such as
> > committing responses).
>
> I've tried this, but there is a concurrency problem with this pattern in
> ServerResource --
>
> If I set autoCommiting to false during a ServerResource.get() and put my
> task on a separate thread pool, then my own task might try to update the
> response at the same time as the upper parts of the call stack
> (Finder.handle(), for example) also try to update the response according
> to my return value from get(). Both threads might be doing it at the
> same time, and the response ends up corrupted (no concurrency
> exceptions, but it's mismatched status/entity, for example).
>
> What would be the correct way to defer a response from within a
> ServerResource?
>
> My thought is that there should be a way to return from get() while
> signaling to the rest of the call stack that I am handling the response.
> A null won't work, because it internally signifies an unavailable
> entity. Perhaps a new kind of ResourceException?
> DefferedResponseResourceException?
>
> -Tal
>
> ------------------------------------------------------
>
> http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2612147
>

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2623441

Reply via email to