Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (revision 1790976) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (revision ) @@ -136,6 +136,7 @@ private Root root; private NamePathMapper namePathMapper; private ReferenceChangeTracker referenceTracker; + private Impersonators impersonators; private UserManagerImpl userManager; private IdentifierManager identifierManager; @@ -251,6 +252,9 @@ if (a.getPath().equals(existing.getPath())) { parent.setProperty(REP_AUTHORIZABLE_ID, id); + if (impersonators != null) { + impersonators.setAuthorizableId(id); + } } else { throw new AuthorizableExistsException(id); } @@ -299,7 +303,8 @@ // since impersonators may be imported later on, postpone processing // to the end. // see -> process References - referenceTracker.processedReference(new Impersonators(a.getID(), propInfo.getTextValues())); + impersonators = new Impersonators(a.getID(), propInfo.getTextValues()); + referenceTracker.processedReference(impersonators); return true; } else if (REP_DISABLED.equals(propName)) { @@ -667,7 +672,7 @@ */ private final class Impersonators { - private final String userId; + private String userId; private final Set principalNames = new HashSet(); private Impersonators(String userId, List values) { @@ -675,6 +680,10 @@ for (TextValue v : values) { principalNames.add(v.getString()); } + } + + private void setAuthorizableId(String id) { + userId = id; } private void process() throws RepositoryException { \ No newline at end of file