You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by Michael Dürig <md...@apache.org> on 2014/01/30 16:49:02 UTC

Re: svn commit: r1562562 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation: EventFactory.java EventQueue.java QueueingHandler.java


On 29.1.14 8:48 , jukka@apache.org wrote:
> Author: jukka
> Date: Wed Jan 29 19:48:47 2014
> New Revision: 1562562
>
> URL: http://svn.apache.org/r1562562
> Log:
> OAK-1332: Large number of changes to the same node can fill observation queue
>


> +        //---------------------------------------------------------< Event >--
> +
> +        @Override
> +        public String getPath() {
> +            return PathUtils.concat(
> +                    mapper.getJcrPath(parent), mapper.getJcrName(name));
> +        }

Being burnt by OAK-1370... but his might also lead to concurrent access 
to the same session from multiple threads. We should probably also 
synchronise the session related part of the NPM.

Michael

Re: svn commit: r1562562 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation: EventFactory.java EventQueue.java QueueingHandler.java

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On Thu, Jan 30, 2014 at 10:49 AM, Michael Dürig <md...@apache.org> wrote:
> Being burnt by OAK-1370... but his might also lead to concurrent access to
> the same session from multiple threads. We should probably also synchronise
> the session related part of the NPM.

I'd simply synchronize the entire NPM. Doing so shouldn't cost too
much in the normal case where just a single thread is accessing a
session, but should avoid problems in the cases where there is
concurrent access. In the case of observation this could even happen
with a perfectly valid client that doesn't try to use the session
concurrently from multiple threads, as observation thread will in any
case need to access the NPM.

BR,

Jukka Zitting