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