Yes, I’ve already found the root cause (described in my previous message).

Setting tapestry.session-locking-enabled=false instantly fixes this.
However, long-term, I’d prefer to have something like this (pseudocode):

lock.safeGet(() -> session.getAttribute(name));
lock.safeSet(() -> session.setAttribute(name, value));

This would of course require rewriting at least SessionImpl
and TapestrySessionFactoryImpl to support such semantics.


On Sun, Mar 18, 2018 at 3:33 PM, Dmitry Gusev <dmitry.gu...@gmail.com>
wrote:

> Take a thread dump and see what other blocked requests are waiting for?
>
> On Sunday, March 18, 2018, Ilya Obshadko <xf...@xfyre.com> wrote:
>
> > Hi everyone,
> >
> > I’m struggling to understand the cause of the following issue:
> >
> > - my Tapestry application generates certain PDF files using Apache FOP
> and
> > Saxon
> > - when PDF generator process is started, other requests to that instance
> > are blocked until it’s finished
> > - moving FOP processing to a new thread using ParallelExecutor.invoke()
> > doesn’t seem to affect anything
> >
> > Any ideas why?
> >
> > I had a hypothesis that FOP processing actually blocks the whole thing
> > because of AWT usage, but couldn’t find any confirmations yet.
> >
> > --
> > Ilya Obshadko
> >
>
>
> --
> Dmitry Gusev
>
> AnjLab Team
> http://anjlab.com
>



-- 
Ilya Obshadko

Reply via email to