OAK-9282 : SecurityProviderRegistration: missing test for concurrent activation

git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/oak/trunk@1883789 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/oak-core/pom.xml b/oak-core/pom.xml
index 7dcfb13..ed4676a 100644
--- a/oak-core/pom.xml
+++ b/oak-core/pom.xml
@@ -158,6 +158,7 @@
                                     <include>org.apache.jackrabbit.oak.security.authentication</include>
                                     <include>org.apache.jackrabbit.oak.security.authentication.user</include>
                                     <include>org.apache.jackrabbit.oak.security.authorization</include>
+                                    <include>org.apache.jackrabbit.oak.security.internal</include>
                                     <include>org.apache.jackrabbit.oak.security.principal</include>
                                     <include>org.apache.jackrabbit.oak.security.privilege</include>
                                     <include>org.apache.jackrabbit.oak.security.user.autosave</include>
@@ -182,7 +183,6 @@
                                     <include>org.apache.jackrabbit.oak.security.authorization.composite</include>
                                     <include>org.apache.jackrabbit.oak.security.authorization.permission</include>
                                     <include>org.apache.jackrabbit.oak.security.authorization.restriction</include>
-                                    <include>org.apache.jackrabbit.oak.security.internal</include>
                                     <include>org.apache.jackrabbit.oak.security.user</include>
                                 </includes>
                                 <excludes>
diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
index e3dcb14..5f41df9 100644
--- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
+++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderRegistrationTest.java
@@ -115,7 +115,7 @@
     @Rule
     public final OsgiContext context = new OsgiContext();
 
-    private SecurityProviderRegistration registration = new SecurityProviderRegistration();
+    private final SecurityProviderRegistration registration = new SecurityProviderRegistration();
 
     private static void assertContext(@NotNull Context context, int expectedSize, @NotNull Tree tree, boolean isDefined) throws Exception {
         Class<?> c = context.getClass();
@@ -212,6 +212,17 @@
         assertEquals(6, Iterables.size(Iterables.filter(service.getConfigurations(), Predicates.notNull())));
     }
 
+
+    @Test
+    public void testActivateWhileRegistering() throws Exception {
+        Field f = registration.getClass().getDeclaredField("registering");
+        f.setAccessible(true);
+        f.set(registration, true);
+
+        registration.activate(context.bundleContext(), configWithRequiredServiceIds());
+        assertNull(context.getService(SecurityProvider.class));
+    }
+
     @Test
     public void testModified() {
         registration.activate(context.bundleContext(), configWithRequiredServiceIds("rpId", "authorizationId"));
@@ -1081,6 +1092,5 @@
         assertEquals(1, am.getEffectivePolicies(ImmutableSet.of(EveryonePrincipal.getInstance())).length);
         verify(filter1, never()).stop(acMgr, ImmutableSet.of(EveryonePrincipal.getInstance()));
         verify(filter2, times(1)).stop(acMgr, ImmutableSet.of(EveryonePrincipal.getInstance()));
-
     }
 }