Author: mir
Date: Mon Jun 28 14:21:22 2010
New Revision: 958589
URL: http://svn.apache.org/viewvc?rev=958589&view=rev
Log:
CLEREZZA-245: set read/write locks in password reset
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/PasswordReset.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/PasswordReset.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/PasswordReset.java?rev=958589&r1=958588&r2=958589&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/PasswordReset.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.usermanager.webinterface/src/main/java/org/apache/clerezza/platform/usermanager/webinterface/PasswordReset.java
Mon Jun 28 14:21:22 2010
@@ -24,6 +24,7 @@ import java.security.PrivilegedAction;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import java.util.concurrent.locks.Lock;
import javax.mail.MessagingException;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
@@ -55,6 +56,7 @@ import org.apache.clerezza.rdf.core.MGra
import org.apache.clerezza.rdf.core.NonLiteral;
import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.LockableMGraph;
import org.apache.clerezza.rdf.core.impl.PlainLiteralImpl;
import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
import org.apache.clerezza.rdf.core.impl.TripleImpl;
@@ -86,7 +88,7 @@ public class PasswordReset {
private MailMan mailMan;
@Reference(target=SystemConfig.SYSTEM_GRAPH_FILTER)
- private MGraph systemGraph;
+ private LockableMGraph systemGraph;
/**
* Service property
@@ -147,9 +149,16 @@ public class PasswordReset {
"User name and email
address don't match");
}
try {
- Iterator<Triple> agents =
systemGraph.filter(null, PLATFORM.userName,
- new
PlainLiteralImpl(userName));
- NonLiteral agent =
agents.next().getSubject();
+ NonLiteral agent;
+ Lock readLock =
systemGraph.getLock().readLock();
+ readLock.lock();
+ try {
+ Iterator<Triple> agents =
systemGraph.filter(null, PLATFORM.userName,
+ new
PlainLiteralImpl(userName));
+ agent =
agents.next().getSubject();
+ } finally {
+ readLock.unlock();
+ }
MGraph temporary = new SimpleMGraph();
temporary.add(new TripleImpl(agent,
PERMISSION.password,
new
PlainLiteralImpl(newPassword)));