Hi all,
this is my first post, thanks for your support.
I'm using jackrabbit in a high load environment so i need to lock the
directory before modify it, one typical operation is move nodes
(~1000) from the directory A into sub child directory A/a A/b A/c,
with few nodes (~300) i don't have problems but with more nodes is
raised a :

javax.jcr.RepositoryException: failed to remove property
{http://www.jcp.org/jcr/1.0}lockOwner of node /XX/lbs/C/B/B/B/B
        at 
org.apache.jackrabbit.core.NodeImpl.removeChildProperty(NodeImpl.java:574)
        at 
org.apache.jackrabbit.core.PropertyImpl.internalSetValue(PropertyImpl.java:282)
        at 
org.apache.jackrabbit.core.NodeImpl.internalSetProperty(NodeImpl.java:1319)
        at org.apache.jackrabbit.core.NodeImpl.unlock(NodeImpl.java:4523)

initially i supposed a missing lock refresh...
do you have some hint for me?


that's the snip of my code :

%<-----------------------------------------------------------------------------------------------------------------------
MyLockUtil{
public synchronized void locked(Node parent) throws
RepositoryException, InterruptedException{
                while(parent.isLocked()){
                        wait(MAXIMUM_WAIT);
                }
                parent.lock(false,true);
        }

        public synchronized void unlock(Node parent) throws  
RepositoryException{
                parent.unlock();
                notifyAll();    
        }
        
}

class snipp{
        mainOperation(){

                        try{

MyLockUtil.getInstance().locked(current_directory);
                                  move(innerChild);
                                current_directory.getSession().save();
                                current_directory.getLock().refresh();
                        
                        }finally{
                                              
MyLockUtil.getInstance().unlocked(current_directory);
                        }
          }

}

%<-----------------------------------------------------------------------------------------------------------------------

Thank you
lore

Reply via email to