Author: alexparvulescu
Date: Tue Mar  5 19:23:11 2013
New Revision: 1452956

URL: http://svn.apache.org/r1452956
Log:
OAK-443 UserInitializer causes repository traversal

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java?rev=1452956&r1=1452955&r2=1452956&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java
 Tue Mar  5 19:23:11 2013
@@ -104,11 +104,18 @@ public class UserInitializer implements 
         try {
             NodeUtil rootTree = checkNotNull(new NodeUtil(root.getTree("/")));
             NodeUtil index = 
rootTree.getOrAddChild(IndexConstants.INDEX_DEFINITIONS_NAME, 
JcrConstants.NT_UNSTRUCTURED);
-            IndexUtils.createIndexDefinition(index, "authorizableId", true, 
new String[]{REP_AUTHORIZABLE_ID}, null);
-            IndexUtils.createIndexDefinition(index, "principalName", true,
-                    new String[]{REP_PRINCIPAL_NAME},
-                    new String[]{NT_REP_GROUP, NT_REP_USER});
-            IndexUtils.createIndexDefinition(index, "members", false, new 
String[]{UserConstants.REP_MEMBERS}, null);
+
+            if (!index.hasChild("authorizableId")) {
+                IndexUtils.createIndexDefinition(index, "authorizableId", 
true, new String[]{REP_AUTHORIZABLE_ID}, null);
+            }
+            if (!index.hasChild("principalName")) {
+                IndexUtils.createIndexDefinition(index, "principalName", true,
+                        new String[]{REP_PRINCIPAL_NAME},
+                        new String[]{NT_REP_GROUP, NT_REP_USER});
+            }
+            if (!index.hasChild("members")) {
+                IndexUtils.createIndexDefinition(index, "members", false, new 
String[]{UserConstants.REP_MEMBERS}, null);
+            }
 
             String adminId = 
userConfiguration.getConfigurationParameters().getConfigValue(PARAM_ADMIN_ID, 
DEFAULT_ADMIN_ID);
             if (userManager.getAuthorizable(adminId) == null) {


Reply via email to