You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by oz...@apache.org on 2004/05/06 11:19:19 UTC

cvs commit: jakarta-slide/src/share/org/apache/slide/structure StructureImpl.java

ozeigermann    2004/05/06 02:19:19

  Modified:    src/share/org/apache/slide/structure StructureImpl.java
  Log:
  Lock parent of resource to be created or removed. This avoids deadlocks,
  especially in the history folder.
  
  Revision  Changes    Path
  1.44      +11 -4     jakarta-slide/src/share/org/apache/slide/structure/StructureImpl.java
  
  Index: StructureImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/structure/StructureImpl.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- StructureImpl.java	5 May 2004 12:28:52 -0000	1.43
  +++ StructureImpl.java	6 May 2004 09:19:19 -0000	1.44
  @@ -339,6 +339,10 @@
                       newObject = object;
                   }
                   if (parentObject != null) {
  +
  +                    // lock exclusively before anyone can get a read lock                    
  +                    namespace.getUri(token, parentObject.getUri()).getStore().exclusiveTransientLock(parentObject.getUri().toString());
  +                    
                       securityHelper
                           .checkCredentials(token, courObject, namespaceConfig
                                                 .getBindMemberAction());
  @@ -527,6 +531,9 @@
           if (!object.getUri().equals("/")) {
               Uri curUri = namespace.getUri(token, nodeToDelete.getUri());
               Uri parentUri = curUri.getParentUri();
  +            
  +            parentUri.getStore().exclusiveTransientLock(parentUri.toString());
  +            
               ObjectNode parentNode = parentUri.getStore().retrieveObject(parentUri);
               
               securityHelper.checkCredentials
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org