Hi Marcel Many thanks for the reply.
Sorry should've made things clearer. The "nt:folder" nodes are added to the root node. We then add further "nt:folder" nodes hanging off these nodes, and then a mixture of other nodes (e.g. "jcr:content"). E.g:- root folder1 sub-folder1 content1 content2 sub-folder2 content1 content2 folder2 ........ Regards George -----Original Message----- From: mreut...@day.com [mailto:mreut...@day.com] On Behalf Of Marcel Reutegger Sent: 15 January 2010 14:46 To: dev Subject: Re: Jackrabbit Multi Threading Issue Hi, On Fri, Jan 15, 2010 at 14:02, <george.sib...@bt.com> wrote: > Hi > > I'm using jackrabbit in a multi-threaded application. > > I have used ThreadLocal to confine the Jackrabbit Session to a single > thread and see no issues executing simultaneous threads except the > following > scenario:- > > - I want to create one node of type "nt:folder" and then have child > nodes creating under it. > - I attempt to get the node (of type "nt:folder") first. > - If I receive PathNotFoundException, then I create the node (of type > "nt:folder") and save the session. > - Some threads create extra nodes of the same name although the node exists? > > I've tried quite a few synchronization strategies, but no success. I > haven't tried node locking. what's the type of the parent node where the threads will create nt:folder nodes? it seems that the node type allows same name sibling child nodes. but even if you changed that you may run into another exception. after trying to get a node and catching the PathNotFoundException, another thread may have created the node meanwhile. so you probably have to catch another exception: ItemExistException when trying to add the folder node and saving it. that's kind of ugly, but will probably work. otherwise you should use locking. regards marcel > Any help would be appreciated. > > Regards > > George Sibley