Eugeny N Dzhurinsky wrote:
okay... but right now when trying to access node from several concurrent
threads within the same session, these methods throws exception Node already locked: /random/node1_3/node2_3

please note that you should not use multiple write threads on a single session because that's something that is not supported (or even prohibited?) by JTA, and as a consequence jackrabbit does not take precausions for such a case! what jackrabbit supports are multiple threads just reading from a single session.

current.lock(true, true);
current.setProperty("test", propertyValue);
current.save();
current.unlock();

So I assume I should synchronize access to node in my code, right? JackRabbit
won't just wait when node is released?

this is not a question whether jackrabbit does it some way. the jcr spec says that an an exception is thrown when a lock cannot be aquired!

in the end that means you have to synchronize access in you own code or write / use a little utility that implements a blocking Node.lock()

we had a thread about this topic some time ago, see: http://thread.gmane.org/gmane.comp.apache.jackrabbit.devel/2661

regards
 marcel

Reply via email to