NIHVIVO-2279 Insure that a UserAccount has a unique URI.

This commit is contained in:
j2blake 2011-06-09 20:38:16 +00:00
parent bffa48ed6b
commit 8f995412dd

View file

@ -358,9 +358,8 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
Random random = new Random(System.currentTimeMillis());
for (int attempts = 0; attempts < 30; attempts++) {
int upperBound = (int) Math.pow(2, attempts + 13);
uri = namespace + ("n" + random.nextInt(upperBound));
errMsg = getWebappDaoFactory().checkURI(uri);
if (errMsg == null) {
uri = namespace + ("u" + random.nextInt(upperBound));
if (!isUriUsed(uri)) {
return uri;
}
}
@ -369,6 +368,10 @@ public class UserAccountsDaoJena extends JenaBaseDao implements UserAccountsDao
+ errMsg);
}
private boolean isUriUsed(String uri) {
return (getOntModel().getOntResource(uri) != null);
}
/**
* Since there is no reasoner on the UserAccountModel, this will return a
* false negative for a subtype of the specified type.