Author: mduerig
Date: Wed Aug  7 15:09:59 2013
New Revision: 1511352

URL: http://svn.apache.org/r1511352
Log:
OAK-945: UserImporter should not cast UserManager to UserManagerImpl
correct handling of UserManager autosave

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

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java?rev=1511352&r1=1511351&r2=1511352&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
 Wed Aug  7 15:09:59 2013
@@ -179,12 +179,32 @@ class UserImporter implements ProtectedP
             return false;
         }
 
+        if (!initUserManager(isWorkspaceImport, securityProvider)) {
+            return false;
+        }
+
         userManager = new UserManagerImpl(root, namePathMapper, 
securityProvider);
 
         initialized = true;
         return initialized;
     }
 
+    private boolean initUserManager(boolean isWorkspaceImport, 
SecurityProvider securityProvider) {
+        try {
+            if (!isWorkspaceImport && session.getUserManager().isAutoSave()) {
+                log.warn("Session import cannot handle user content: 
UserManager is in autosave mode.");
+                return false;
+            }
+        } catch (RepositoryException e) {
+            // failed to access user manager or to set the autosave behavior
+            // -> return false (not initialized) as importer can't operate.
+            log.error("Failed to initialize UserImporter: ", e);
+            return false;
+        }
+
+        userManager = new UserManagerImpl(root, namePathMapper, 
securityProvider);
+        return true;
+    }
     // -----------------------------------------< ProtectedPropertyImporter 
>---
     @Override
     public boolean handlePropInfo(Tree parent, PropInfo propInfo, 
PropertyDefinition def) throws RepositoryException {


Reply via email to