jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Shiner" <rabbit....@googlemail.com>
Subject Concurrent modifications ...
Date Thu, 20 Apr 2006 10:53:45 GMT

I wonder if you can help me.

I would like to write some code that adds a folder to a parent, but I want
to do this in such a way that it will work during concurrent modifications.

The code I currently have is as follows ...

  // Start the session
  Session session = repository.login(new SimpleCredentials("admin",
      // Get the root node for now
      Node rootNode = session.getRootNode();

     // Wait untill a lock is available on the parent folder
     boolean hasLock = false;
     while (hasLock == false)
        if (folder.isLocked() == false)
              // Take the lock out on the parent
              folder.lock(false, true);
              hasLock = true;
           catch (Exception exception)
              // Ignore and retry


      // Add the new folder
      rootNode.addNode ("testFolder_" + System.currentTimeMillis(),

      // Save the session
      // Log out, lock is revoked

I have a couple of questions:

1)  Is this pattern ok or is there a better way to do things?
2)  I have assumed that the parent node (the root node in this example) is
lockable.  If it isn't what is the best way to apply the lockable aspect in
a concurrent safe way?

I'm new to JackRabbit and trying to evaluate its capabilities.  Any help or
feedback will be gratefully received.

Thanks in advance,

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message