You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/07/05 09:49:58 UTC

svn commit: r960472 - in /incubator/clerezza/trunk/org.apache.clerezza.parent: org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/ org.apache.clerezza.platform.usermanager/src/main/...

Author: mir
Date: Mon Jul  5 07:49:58 2010
New Revision: 960472

URL: http://svn.apache.org/viewvc?rev=960472&view=rev
Log:
CLEREZZA-254: fixed deadlock and other lock-related bugs

Modified:
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/UserManagerWeb.java
    incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserManagerImpl.java

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/UserManagerWeb.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/UserManagerWeb.java?rev=960472&r1=960471&r2=960472&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/UserManagerWeb.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/UserManagerWeb.java Mon Jul  5 07:49:58 2010
@@ -509,15 +509,16 @@ public class UserManagerWeb implements G
 		LockableMGraph contentGraph = (LockableMGraph) cgProvider.getContentGraph();
 		NonLiteral user = getCustomUser(contentGraph, userName);
 		if (user != null) {
-			Lock readLock = contentGraph.getLock().readLock();
-			readLock.lock();
+			Lock writeLock = contentGraph.getLock().writeLock();
+			writeLock.lock();
 			try {
 				Iterator<Triple> userTriples = contentGraph.filter(user, null, null);
 				while (userTriples.hasNext()) {
-					contentGraph.remove(userTriples.next());
+					userTriples.next();
+					userTriples.remove();
 				}
 			} finally {
-				readLock.unlock();
+				writeLock.unlock();
 			}
 			userManager.deleteUser(userName);
 			return RedirectUtil.createSeeOtherResponse("list-users", uriInfo);

Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserManagerImpl.java?rev=960472&r1=960471&r2=960472&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserManagerImpl.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager/src/main/java/org/apache/clerezza/platform/usermanager/UserManagerImpl.java Mon Jul  5 07:49:58 2010
@@ -185,10 +185,12 @@ public class UserManagerImpl implements 
 
 	private void deleteTriplesOfASubject(NonLiteral subject) {
 		Lock writeLock = systemGraph.getLock().writeLock();
+		writeLock.lock();
 		try {
 			Iterator<Triple> triples = systemGraph.filter(subject, null, null);
 			while (triples.hasNext()) {
-				systemGraph.remove(triples.next());
+				triples.next();
+				triples.remove();
 			}
 		} finally {
 			writeLock.unlock();