You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2016/10/06 12:11:26 UTC

svn commit: r1763569 [2/2] - in /sling/trunk/bundles/resourceresolver/src: main/java/org/apache/sling/resourceresolver/impl/ main/java/org/apache/sling/resourceresolver/impl/mapping/ test/java/org/apache/sling/resourceresolver/impl/mapping/

Modified: sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java?rev=1763569&r1=1763568&r2=1763569&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java (original)
+++ sling/trunk/bundles/resourceresolver/src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java Thu Oct  6 12:11:26 2016
@@ -64,7 +64,7 @@ import org.osgi.service.event.EventAdmin
 public class MapEntriesTest {
 
     private MapEntries mapEntries;
-    
+
     File vanityBloomFilterFile;
 
     @Mock
@@ -103,24 +103,25 @@ public class MapEntriesTest {
         when(resourceResolverFactory.isVanityPathEnabled()).thenReturn(true);
         when(resourceResolverFactory.getVanityPathConfig()).thenReturn(configs);
         when(resourceResolverFactory.isOptimizeAliasResolutionEnabled()).thenReturn(true);
+        when(resourceResolverFactory.getObservationPaths()).thenReturn(new String[] {"/"});
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenReturn(
                 Collections.<Resource> emptySet().iterator());
 
         mapEntries = new MapEntries(resourceResolverFactory, bundleContext, eventAdmin);
         Field field0 = MapEntries.class.getDeclaredField("mapRoot");
-        field0.setAccessible(true);  
+        field0.setAccessible(true);
         field0.set(mapEntries, MapEntries.DEFAULT_MAP_ROOT);
-        
+
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, -1);
-        
+
         Field field2 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntriesStartup");
-        field2.setAccessible(true);  
+        field2.setAccessible(true);
         field2.set(mapEntries, true);
-        
+
     }
-    
+
     @After
     public void tearDown() throws Exception {
         vanityBloomFilterFile.delete();
@@ -139,6 +140,7 @@ public class MapEntriesTest {
 
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:alias")) {
                     return Collections.singleton(result).iterator();
@@ -175,6 +177,7 @@ public class MapEntriesTest {
 
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:alias")) {
                     return Arrays.asList(result, secondResult).iterator();
@@ -240,6 +243,7 @@ public class MapEntriesTest {
 
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return resources.iterator();
@@ -269,13 +273,13 @@ public class MapEntriesTest {
                 }
             }
         }
-        
+
         Field field = MapEntries.class.getDeclaredField("vanityTargets");
         field.setAccessible(true);
         @SuppressWarnings("unchecked")
         Map<String, List<String>> vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(4, vanityTargets.size());
-        
+
     }
 
     private ValueMap buildValueMap(Object... string) {
@@ -310,6 +314,7 @@ public class MapEntriesTest {
 
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return resources.iterator();
@@ -335,39 +340,39 @@ public class MapEntriesTest {
             assertTrue(resultSet.remove(entry.getRedirect()[0]));
         }
     }
-    
+
     @Test
     public void test_getActualContentPath() throws Exception {
 
         Method method = MapEntries.class.getDeclaredMethod("getActualContentPath", String.class);
         method.setAccessible(true);
-        
+
         String actualContent = (String) method.invoke(mapEntries, "/content");
         assertEquals("/content", actualContent);
-        
+
         actualContent = (String) method.invoke(mapEntries, "/content/jcr:content");
         assertEquals("/content", actualContent);
     }
-    
+
     @Test
     public void test_getMapEntryRedirect() throws Exception {
 
         Method method = MapEntries.class.getDeclaredMethod("getMapEntryRedirect", MapEntry.class);
         method.setAccessible(true);
-        
-        MapEntry mapEntry = new MapEntry("/content", -1, false, 0, "/content");     
+
+        MapEntry mapEntry = new MapEntry("/content", -1, false, 0, "/content");
         String actualContent = (String) method.invoke(mapEntries, mapEntry);
         assertEquals("/content", actualContent);
-        
-        mapEntry = new MapEntry("/content", -1, false, 0, "/content$1");     
+
+        mapEntry = new MapEntry("/content", -1, false, 0, "/content$1");
         actualContent = (String) method.invoke(mapEntries, mapEntry);
         assertEquals("/content", actualContent);
-        
-        mapEntry = new MapEntry("/content", -1, false, 0, "/content.html");     
+
+        mapEntry = new MapEntry("/content", -1, false, 0, "/content.html");
         actualContent = (String) method.invoke(mapEntries, mapEntry);
         assertEquals("/content", actualContent);
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doAddVanity() throws Exception {
@@ -377,41 +382,41 @@ public class MapEntriesTest {
         field.setAccessible(true);
         Map<String, List<String>> vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(0, vanityTargets.size());
-        
+
         Method method = MapEntries.class.getDeclaredMethod("doAddVanity", String.class);
         method.setAccessible(true);
-        
+
         Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
+
         method.invoke(mapEntries, "/justVanityPath");
 
         entries = mapEntries.getResolveMaps();
         assertEquals(2, entries.size());
-        
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue());        
-        
+        assertEquals(2, counter.longValue());
+
         //bad vanity
         Resource badVanityPath = mock(Resource.class, "badVanityPath");
         when(resourceResolver.getResource("/badVanityPath")).thenReturn(badVanityPath);
         when(badVanityPath.getPath()).thenReturn("/badVanityPath");
-        when(badVanityPath.getName()).thenReturn("badVanityPath");        
+        when(badVanityPath.getName()).thenReturn("badVanityPath");
         when(badVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/content/mypage/en-us-{132"));
-        
+
         method.invoke(mapEntries, "/badVanityPath");
-        
+
 
         assertEquals(2, entries.size());
 
         vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(1, vanityTargets.size());
-        
+
         //vanity under jcr:content
         Resource vanityPathOnJcrContentParent = mock(Resource.class, "vanityPathOnJcrContentParent");
         when(vanityPathOnJcrContentParent.getPath()).thenReturn("/vanityPathOnJcrContent");
@@ -423,70 +428,70 @@ public class MapEntriesTest {
         when(vanityPathOnJcrContent.getName()).thenReturn("jcr:content");
         when(vanityPathOnJcrContent.getParent()).thenReturn(vanityPathOnJcrContentParent);
         when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/vanityPathOnJcrContent"));
-        
+
         method.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
-        
+
         entries = mapEntries.getResolveMaps();
         assertEquals(4, entries.size());
-        
+
         counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(4, counter.longValue());        
+        assertEquals(4, counter.longValue());
 
         vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(2, vanityTargets.size());
-        
+
         assertNull(vanityTargets.get("/vanityPathOnJcrContent/jcr:content"));
         assertNotNull(vanityTargets.get("/vanityPathOnJcrContent"));
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doAddVanity_1() throws Exception {
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 10);
-        
+
         List<MapEntry> entries = mapEntries.getResolveMaps();
         assertEquals(0, entries.size());
         Field field = MapEntries.class.getDeclaredField("vanityTargets");
         field.setAccessible(true);
         Map<String, List<String>> vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(0, vanityTargets.size());
-        
+
         Method method = MapEntries.class.getDeclaredMethod("doAddVanity", String.class);
         method.setAccessible(true);
-        
+
         Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
+
         method.invoke(mapEntries, "/justVanityPath");
 
         entries = mapEntries.getResolveMaps();
         assertEquals(2, entries.size());
-        
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue());        
-        
+        assertEquals(2, counter.longValue());
+
         //bad vanity
         Resource badVanityPath = mock(Resource.class, "badVanityPath");
         when(resourceResolver.getResource("/badVanityPath")).thenReturn(badVanityPath);
         when(badVanityPath.getPath()).thenReturn("/badVanityPath");
-        when(badVanityPath.getName()).thenReturn("badVanityPath");        
+        when(badVanityPath.getName()).thenReturn("badVanityPath");
         when(badVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/content/mypage/en-us-{132"));
-        
+
         method.invoke(mapEntries, "/badVanityPath");
-        
+
 
         assertEquals(2, entries.size());
 
         vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(1, vanityTargets.size());
-        
+
         //vanity under jcr:content
         Resource vanityPathOnJcrContentParent = mock(Resource.class, "vanityPathOnJcrContentParent");
         when(vanityPathOnJcrContentParent.getPath()).thenReturn("/vanityPathOnJcrContent");
@@ -498,68 +503,68 @@ public class MapEntriesTest {
         when(vanityPathOnJcrContent.getName()).thenReturn("jcr:content");
         when(vanityPathOnJcrContent.getParent()).thenReturn(vanityPathOnJcrContentParent);
         when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/vanityPathOnJcrContent"));
-        
+
         method.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
-        
+
         entries = mapEntries.getResolveMaps();
         assertEquals(4, entries.size());
-        
+
         counter = (AtomicLong) vanityCounter.get(mapEntries);
         assertEquals(4, counter.longValue());
 
         vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(2, vanityTargets.size());
-        
+
         assertNull(vanityTargets.get("/vanityPathOnJcrContent/jcr:content"));
         assertNotNull(vanityTargets.get("/vanityPathOnJcrContent"));
     }
-    
-    
+
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doUpdateVanity() throws Exception {
         Field field0 = MapEntries.class.getDeclaredField("resolveMapsMap");
-        field0.setAccessible(true);   
+        field0.setAccessible(true);
         Map<String, List<MapEntry>> resolveMapsMap = (Map<String, List<MapEntry>>) field0.get(mapEntries);
         assertEquals(1, resolveMapsMap.size());
-        
+
         Field field = MapEntries.class.getDeclaredField("vanityTargets");
         field.setAccessible(true);
         Map<String, List<String>> vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(0, vanityTargets.size());
-        
+
         Method method = MapEntries.class.getDeclaredMethod("doAddVanity", String.class);
         method.setAccessible(true);
-        
+
         Method method1 = MapEntries.class.getDeclaredMethod("doUpdateVanity", String.class);
         method1.setAccessible(true);
-        
+
         Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
+
         method.invoke(mapEntries, "/justVanityPath");
- 
+
         assertEquals(2, resolveMapsMap.size());
         assertEquals(1, vanityTargets.size());
         assertNotNull(resolveMapsMap.get("/target/justVanityPath"));
         assertNull(resolveMapsMap.get("/target/justVanityPathUpdated"));
         assertEquals(1, vanityTargets.get("/justVanityPath").size());
         assertEquals("/target/justVanityPath", vanityTargets.get("/justVanityPath").get(0));
-        
+
         //update vanity path
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPathUpdated"));
         method1.invoke(mapEntries, "/justVanityPath");
-               
+
         assertEquals(2, resolveMapsMap.size());
         assertEquals(1, vanityTargets.size());
         assertNull(resolveMapsMap.get("/target/justVanityPath"));
         assertNotNull(resolveMapsMap.get("/target/justVanityPathUpdated"));
         assertEquals(1, vanityTargets.get("/justVanityPath").size());
         assertEquals("/target/justVanityPathUpdated", vanityTargets.get("/justVanityPath").get(0));
-        
+
         //vanity under jcr:content
         Resource vanityPathOnJcrContentParent = mock(Resource.class, "vanityPathOnJcrContentParent");
         when(vanityPathOnJcrContentParent.getPath()).thenReturn("/vanityPathOnJcrContent");
@@ -571,20 +576,20 @@ public class MapEntriesTest {
         when(vanityPathOnJcrContent.getName()).thenReturn("jcr:content");
         when(vanityPathOnJcrContent.getParent()).thenReturn(vanityPathOnJcrContentParent);
         when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/vanityPathOnJcrContent"));
-        
+
         method.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
-        
+
         assertEquals(3, resolveMapsMap.size());
         assertEquals(2, vanityTargets.size());
         assertNotNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
         assertNull(resolveMapsMap.get("/target/vanityPathOnJcrContentUpdated"));
         assertEquals(1, vanityTargets.get("/vanityPathOnJcrContent").size());
         assertEquals("/target/vanityPathOnJcrContent", vanityTargets.get("/vanityPathOnJcrContent").get(0));
-        
+
         //update vanity path
-        when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/vanityPathOnJcrContentUpdated"));     
+        when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/vanityPathOnJcrContentUpdated"));
         method1.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
-        
+
         assertEquals(3, resolveMapsMap.size());
         assertEquals(2, vanityTargets.size());
         assertNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
@@ -592,54 +597,54 @@ public class MapEntriesTest {
         assertEquals(1, vanityTargets.get("/vanityPathOnJcrContent").size());
         assertEquals("/target/vanityPathOnJcrContentUpdated", vanityTargets.get("/vanityPathOnJcrContent").get(0));
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doRemoveVanity() throws Exception {
         Field field0 = MapEntries.class.getDeclaredField("resolveMapsMap");
-        field0.setAccessible(true);   
+        field0.setAccessible(true);
         Map<String, List<MapEntry>> resolveMapsMap = (Map<String, List<MapEntry>>) field0.get(mapEntries);
         assertEquals(1, resolveMapsMap.size());
-        
+
         Field field = MapEntries.class.getDeclaredField("vanityTargets");
         field.setAccessible(true);
         Map<String, List<String>> vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(0, vanityTargets.size());
-        
+
         Method method = MapEntries.class.getDeclaredMethod("doAddVanity", String.class);
         method.setAccessible(true);
-        
+
         Method method1 = MapEntries.class.getDeclaredMethod("doRemoveVanity", String.class);
         method1.setAccessible(true);
-        
+
         Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
+
         method.invoke(mapEntries, "/justVanityPath");
-        
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue());  
+        assertEquals(2, counter.longValue());
         assertEquals(2, resolveMapsMap.size());
         assertEquals(1, vanityTargets.size());
         assertNotNull(resolveMapsMap.get("/target/justVanityPath"));
         assertEquals(1, vanityTargets.get("/justVanityPath").size());
         assertEquals("/target/justVanityPath", vanityTargets.get("/justVanityPath").get(0));
-        
+
         //remove vanity path
         method1.invoke(mapEntries, "/justVanityPath");
-        
+
         counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(0, counter.longValue());  
-        
+        assertEquals(0, counter.longValue());
+
         assertEquals(1, resolveMapsMap.size());
-        assertEquals(0, vanityTargets.size());      
+        assertEquals(0, vanityTargets.size());
         assertNull(resolveMapsMap.get("/target/justVanityPath"));
-        
+
         //vanity under jcr:content
         Resource vanityPathOnJcrContentParent = mock(Resource.class, "vanityPathOnJcrContentParent");
         when(vanityPathOnJcrContentParent.getPath()).thenReturn("/vanityPathOnJcrContent");
@@ -651,103 +656,103 @@ public class MapEntriesTest {
         when(vanityPathOnJcrContent.getName()).thenReturn("jcr:content");
         when(vanityPathOnJcrContent.getParent()).thenReturn(vanityPathOnJcrContentParent);
         when(vanityPathOnJcrContent.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/vanityPathOnJcrContent"));
-        
+
         method.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
-        
+
         assertEquals(2, resolveMapsMap.size());
         assertEquals(1, vanityTargets.size());
         assertNotNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
         assertEquals(1,vanityTargets.get("/vanityPathOnJcrContent").size());
         assertEquals("/target/vanityPathOnJcrContent", vanityTargets.get("/vanityPathOnJcrContent").get(0));
-        
+
         //remove vanity path
         method1.invoke(mapEntries, "/vanityPathOnJcrContent/jcr:content");
-        
+
         assertEquals(1, resolveMapsMap.size());
-        assertEquals(0, vanityTargets.size());      
+        assertEquals(0, vanityTargets.size());
         assertNull(resolveMapsMap.get("/target/vanityPathOnJcrContent"));
-        
+
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doUpdateVanityOrder() throws Exception {
         Field field0 = MapEntries.class.getDeclaredField("resolveMapsMap");
-        field0.setAccessible(true);   
+        field0.setAccessible(true);
         Map<String, List<MapEntry>> resolveMapsMap = (Map<String, List<MapEntry>>) field0.get(mapEntries);
         assertEquals(1, resolveMapsMap.size());
-        
+
         Field field = MapEntries.class.getDeclaredField("vanityTargets");
         field.setAccessible(true);
         Map<String, List<String>> vanityTargets = (Map<String, List<String>>) field.get(mapEntries);
         assertEquals(0, vanityTargets.size());
-        
+
         Method method = MapEntries.class.getDeclaredMethod("doAddVanity", String.class);
         method.setAccessible(true);
-        
+
         Method method1 = MapEntries.class.getDeclaredMethod("doUpdateVanityOrder", String.class, boolean.class);
         method1.setAccessible(true);
-        
+
         Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
+
         method.invoke(mapEntries, "/justVanityPath");
-        
+
         Resource justVanityPath2 = mock(Resource.class, "justVanityPath2");
         when(resourceResolver.getResource("/justVanityPath2")).thenReturn(justVanityPath2);
-        when(justVanityPath2.getPath()).thenReturn("/justVanityPath2");                 
+        when(justVanityPath2.getPath()).thenReturn("/justVanityPath2");
         when(justVanityPath2.getName()).thenReturn("justVanityPath2");
         when(justVanityPath2.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath","sling:vanityOrder", 100));
-        
+
         method.invoke(mapEntries, "/justVanityPath2");
-              
+
         assertEquals(2, resolveMapsMap.size());
-        assertEquals(2, vanityTargets.size());    
+        assertEquals(2, vanityTargets.size());
         assertNotNull(resolveMapsMap.get("/target/justVanityPath"));
-        
+
         Iterator <MapEntry> iterator = resolveMapsMap.get("/target/justVanityPath").iterator();
         assertEquals("/justVanityPath2$1", iterator.next().getRedirect()[0]);
         assertEquals("/justVanityPath$1", iterator.next().getRedirect()[0]);
         assertEquals("/justVanityPath2.html", iterator.next().getRedirect()[0]);
-        assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]);    
+        assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]);
         assertFalse(iterator.hasNext());
-        
+
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath","sling:vanityOrder", 1000));
         method1.invoke(mapEntries, "/justVanityPath",false);
-        
+
         iterator = resolveMapsMap.get("/target/justVanityPath").iterator();
         assertEquals("/justVanityPath$1", iterator.next().getRedirect()[0]);
         assertEquals("/justVanityPath2$1", iterator.next().getRedirect()[0]);
         assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]);
-        assertEquals("/justVanityPath2.html", iterator.next().getRedirect()[0]);    
+        assertEquals("/justVanityPath2.html", iterator.next().getRedirect()[0]);
         assertFalse(iterator.hasNext());
-        
+
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
         method1.invoke(mapEntries, "/justVanityPath",true);
-        
+
         iterator = resolveMapsMap.get("/target/justVanityPath").iterator();
         assertEquals("/justVanityPath2$1", iterator.next().getRedirect()[0]);
         assertEquals("/justVanityPath$1", iterator.next().getRedirect()[0]);
         assertEquals("/justVanityPath2.html", iterator.next().getRedirect()[0]);
-        assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]);    
+        assertEquals("/justVanityPath.html", iterator.next().getRedirect()[0]);
         assertFalse(iterator.hasNext());
     }
-    
+
     //SLING-3727
     @Test
     public void test_doAddAliasAttributesWithDisableAliasOptimization() throws Exception {
-        Method method = MapEntries.class.getDeclaredMethod("doAddAttributes", String.class, String[].class, boolean.class);
+        Method method = MapEntries.class.getDeclaredMethod("doAddAttributes", String.class, Set.class, boolean.class);
         method.setAccessible(true);
-        
+
         when(resourceResolverFactory.isOptimizeAliasResolutionEnabled()).thenReturn(false);
         mapEntries = new MapEntries(resourceResolverFactory, bundleContext, eventAdmin);
         Field field0 = MapEntries.class.getDeclaredField("mapRoot");
-        field0.setAccessible(true);  
+        field0.setAccessible(true);
         field0.set(mapEntries, MapEntries.DEFAULT_MAP_ROOT);
-        
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
 
@@ -757,26 +762,26 @@ public class MapEntriesTest {
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child",
-                new String[] { "sling:alias" }, false);
-        
+                Collections.singleton("sling:alias"), false);
+
         Map<String, String> aliasMap = mapEntries.getAliasMap("/parent");
         assertNull(aliasMap);
     }
-    
+
     //SLING-3727
     @Test
     public void test_doUpdateAttributesWithDisableAliasOptimization() throws Exception {
-        Method method = MapEntries.class.getDeclaredMethod("doUpdateAttributes", String.class, String[].class, boolean.class);
+        Method method = MapEntries.class.getDeclaredMethod("doUpdateAttributes", String.class, Set.class, boolean.class);
         method.setAccessible(true);
-        
+
         when(resourceResolverFactory.isOptimizeAliasResolutionEnabled()).thenReturn(false);
         mapEntries = new MapEntries(resourceResolverFactory, bundleContext, eventAdmin);
         Field field0 = MapEntries.class.getDeclaredField("mapRoot");
-        field0.setAccessible(true);  
+        field0.setAccessible(true);
         field0.set(mapEntries, MapEntries.DEFAULT_MAP_ROOT);
-        
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
 
@@ -786,26 +791,26 @@ public class MapEntriesTest {
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child",
-                new String[] { "sling:alias" }, false);
-        
+                Collections.singleton("sling:alias"), false);
+
         Map<String, String> aliasMap = mapEntries.getAliasMap("/parent");
         assertNull(aliasMap);
     }
-    
+
     //SLING-3727
     @Test
     public void test_doRemoveAttributessWithDisableAliasOptimization() throws Exception {
-        Method method = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, String[].class, boolean.class, boolean.class);
+        Method method = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, Set.class, boolean.class, boolean.class);
         method.setAccessible(true);
-        
+
         when(resourceResolverFactory.isOptimizeAliasResolutionEnabled()).thenReturn(false);
         mapEntries = new MapEntries(resourceResolverFactory, bundleContext, eventAdmin);
         Field field0 = MapEntries.class.getDeclaredField("mapRoot");
-        field0.setAccessible(true);  
+        field0.setAccessible(true);
         field0.set(mapEntries, MapEntries.DEFAULT_MAP_ROOT);
-        
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
 
@@ -815,45 +820,45 @@ public class MapEntriesTest {
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child",
-                new String[] { "sling:alias" }, false, false);
-        
+                Collections.singleton("sling:alias"), false, false);
+
         Map<String, String> aliasMap = mapEntries.getAliasMap("/parent");
         assertNull(aliasMap);
-    }    
-    
+    }
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doAddAlias() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size());        
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("child", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         //test_that_duplicate_alias_doesnt_replace_first_alias
         final Resource secondResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child2")).thenReturn(secondResult);
@@ -861,16 +866,16 @@ public class MapEntriesTest {
         when(secondResult.getPath()).thenReturn("/parent/child2");
         when(secondResult.getName()).thenReturn("child2");
         when(secondResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child2");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("child", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         //testing jcr:content node
         final Resource jcrContentResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child/jcr:content")).thenReturn(jcrContentResult);
@@ -878,49 +883,49 @@ public class MapEntriesTest {
         when(jcrContentResult.getPath()).thenReturn("/parent/child/jcr:content");
         when(jcrContentResult.getName()).thenReturn("jcr:content");
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContent"));
-        
+
         method.invoke(mapEntries, "/parent/child/jcr:content");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(2, aliasMapEntry.size()); 
+        assertEquals(2, aliasMapEntry.size());
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-        
-        assertEquals(1, aliasMap.size()); 
+
+        assertEquals(1, aliasMap.size());
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doAddAlias2() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size());        
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent");
         when(result.getName()).thenReturn("parent");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("parent", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         //test_that_duplicate_alias_doesnt_replace_first_alias
         final Resource secondResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent2")).thenReturn(secondResult);
@@ -928,16 +933,16 @@ public class MapEntriesTest {
         when(secondResult.getPath()).thenReturn("/parent2");
         when(secondResult.getName()).thenReturn("parent2");
         when(secondResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent2");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("parent", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         //testing jcr:content node
         final Resource jcrContentResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/jcr:content")).thenReturn(jcrContentResult);
@@ -945,66 +950,66 @@ public class MapEntriesTest {
         when(jcrContentResult.getPath()).thenReturn("/parent/jcr:content");
         when(jcrContentResult.getName()).thenReturn("jcr:content");
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContent"));
-        
+
         method.invoke(mapEntries, "/parent/jcr:content");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNotNull(aliasMapEntry);
-        assertEquals(2, aliasMapEntry.size()); 
+        assertEquals(2, aliasMapEntry.size());
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("parent", aliasMapEntry.get("aliasJcrContent"));
-        
-        assertEquals(1, aliasMap.size()); 
+
+        assertEquals(1, aliasMap.size());
     }
-    
-    
+
+
     @SuppressWarnings("unchecked")
     @Test
     public void test_doUpdateAlias() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
-        Method method1 = MapEntries.class.getDeclaredMethod("doUpdateAttributes", String.class , String[].class, boolean.class);
+
+        Method method1 = MapEntries.class.getDeclaredMethod("doUpdateAttributes", String.class , Set.class, boolean.class);
         method1.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size());        
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertFalse(aliasMapEntry.containsKey("aliasUpdated"));
         assertEquals("child", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasUpdated"));
-        
-        method1.invoke(mapEntries, "/parent/child", new String[] { "sling:alias" }, false);
-        
+
+        method1.invoke(mapEntries, "/parent/child", Collections.singleton("sling:alias"), false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertFalse(aliasMapEntry.containsKey("alias"));
         assertTrue(aliasMapEntry.containsKey("aliasUpdated"));
         assertEquals("child", aliasMapEntry.get("aliasUpdated"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         //testing jcr:content node update
         final Resource jcrContentResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child/jcr:content")).thenReturn(jcrContentResult);
@@ -1013,40 +1018,40 @@ public class MapEntriesTest {
         when(jcrContentResult.getName()).thenReturn("jcr:content");
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContent"));
         when(result.getChild("jcr:content")).thenReturn(jcrContentResult);
-        
+
         method.invoke(mapEntries, "/parent/child/jcr:content");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(2, aliasMapEntry.size()); 
+        assertEquals(2, aliasMapEntry.size());
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertFalse(aliasMapEntry.containsKey("aliasJcrContentUpdated"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContentUpdated"));
-        method1.invoke(mapEntries, "/parent/child/jcr:content",  new String[] { "sling:alias" }, false);
-        
+        method1.invoke(mapEntries, "/parent/child/jcr:content", Collections.singleton("sling:alias"), false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(2, aliasMapEntry.size()); 
+        assertEquals(2, aliasMapEntry.size());
         assertFalse(aliasMapEntry.containsKey("aliasJcrContent"));
         assertTrue(aliasMapEntry.containsKey("aliasJcrContentUpdated"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContentUpdated"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         //re-update alias
-        method1.invoke(mapEntries, "/parent/child",  new String[] { "sling:alias" }, false);
-        
+        method1.invoke(mapEntries, "/parent/child", Collections.singleton("sling:alias"), false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertEquals(2, aliasMapEntry.size());
         assertFalse(aliasMapEntry.containsKey("alias"));
         assertTrue(aliasMapEntry.containsKey("aliasUpdated"));
         assertEquals("child", aliasMapEntry.get("aliasUpdated"));
-        
+
         //add another node with different alias and check that the update doesn't break anything (see also SLING-3728)
         final Resource secondResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child2")).thenReturn(secondResult);
@@ -1054,127 +1059,127 @@ public class MapEntriesTest {
         when(secondResult.getPath()).thenReturn("/parent/child2");
         when(secondResult.getName()).thenReturn("child2");
         when(secondResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias2"));
-               
+
         method.invoke(mapEntries, "/parent/child2");
-        assertEquals(1, aliasMap.size()); 
-        
+        assertEquals(1, aliasMap.size());
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertEquals(3, aliasMapEntry.size());
-        
+
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContentUpdated"));
-        method1.invoke(mapEntries, "/parent/child/jcr:content",  new String[] { "sling:alias" }, false);
-        
+        method1.invoke(mapEntries, "/parent/child/jcr:content", Collections.singleton("sling:alias"), false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(3, aliasMapEntry.size()); 
+        assertEquals(3, aliasMapEntry.size());
         assertFalse(aliasMapEntry.containsKey("aliasJcrContent"));
         assertTrue(aliasMapEntry.containsKey("aliasJcrContentUpdated"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContentUpdated"));
-        
-        assertEquals(1, aliasMap.size()); 
- 
-        
+
+        assertEquals(1, aliasMap.size());
+
+
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", null));
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContentUpdated"));
-        method1.invoke(mapEntries, "/parent/child/jcr:content",  new String[] { "sling:alias" }, false);
-        
+        method1.invoke(mapEntries, "/parent/child/jcr:content", Collections.singleton("sling:alias"), false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(2, aliasMapEntry.size()); 
+        assertEquals(2, aliasMapEntry.size());
         assertFalse(aliasMapEntry.containsKey("aliasJcrContent"));
         assertTrue(aliasMapEntry.containsKey("aliasJcrContentUpdated"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContentUpdated"));
-        
-        assertEquals(1, aliasMap.size()); 
- 
+
+        assertEquals(1, aliasMap.size());
+
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
-    public void test_doRemoveAlias() throws Exception {       
+    public void test_doRemoveAlias() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
-        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, String[].class, boolean.class, boolean.class);
+
+        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, Set.class, boolean.class, boolean.class);
         method1.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size()); 
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("child", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
-        method1.invoke(mapEntries, "/parent/child", new String[] { "sling:alias" }, false, false);
-        
+
+        assertEquals(1, aliasMap.size());
+
+        method1.invoke(mapEntries, "/parent/child", Collections.singleton("sling:alias"), false, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNull(aliasMapEntry);
-        
-        assertEquals(0, aliasMap.size()); 
-        
+
+        assertEquals(0, aliasMap.size());
+
         //re-add node and test nodeDeletion true
         method.invoke(mapEntries, "/parent/child");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("child", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         when(resourceResolver.getResource("/parent/child")).thenReturn(null);
-        method1.invoke(mapEntries, "/parent/child", new String[] { "sling:alias" }, true, false);
-        
+        method1.invoke(mapEntries, "/parent/child", Collections.singleton("sling:alias"), true, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNull(aliasMapEntry);
-        
-        assertEquals(0, aliasMap.size()); 
-    } 
+
+        assertEquals(0, aliasMap.size());
+    }
 
     @SuppressWarnings("unchecked")
     @Test
-    public void test_doRemoveAlias2() throws Exception { 
+    public void test_doRemoveAlias2() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
-        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, String[].class, boolean.class, boolean.class);
+
+        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, Set.class, boolean.class, boolean.class);
         method1.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size()); 
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap());
-        
+
         //testing jcr:content node removal
         final Resource jcrContentResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child/jcr:content")).thenReturn(jcrContentResult);
@@ -1183,69 +1188,69 @@ public class MapEntriesTest {
         when(jcrContentResult.getName()).thenReturn("jcr:content");
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContent"));
         when(result.getChild("jcr:content")).thenReturn(jcrContentResult);
-        
+
         method.invoke(mapEntries, "/parent/child/jcr:content");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-        
-        assertEquals(1, aliasMap.size());        
-        
-        method1.invoke(mapEntries, "/parent/child/jcr:content", new String[] { "sling:alias" }, false, false);
-        
+
+        assertEquals(1, aliasMap.size());
+
+        method1.invoke(mapEntries, "/parent/child/jcr:content", Collections.singleton("sling:alias"), false, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNull(aliasMapEntry);
-        
-        assertEquals(0, aliasMap.size()); 
-        
-        //re-add node and test nodeDeletion true       
+
+        assertEquals(0, aliasMap.size());
+
+        //re-add node and test nodeDeletion true
         method.invoke(mapEntries, "/parent/child/jcr:content");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-        
-        assertEquals(1, aliasMap.size());        
+
+        assertEquals(1, aliasMap.size());
         when(resourceResolver.getResource("/parent/child/jcr:content")).thenReturn(null);
         when(result.getChild("jcr:content")).thenReturn(null);
-        method1.invoke(mapEntries, "/parent/child/jcr:content", new String[] { "sling:alias" }, true, false);
-        
+        method1.invoke(mapEntries, "/parent/child/jcr:content", Collections.singleton("sling:alias"), true, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNull(aliasMapEntry);
-        
+
         assertEquals(0, aliasMap.size());
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
-    public void test_doRemoveAlias3() throws Exception { 
+    public void test_doRemoveAlias3() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
-        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, String[].class, boolean.class, boolean.class);
+
+        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, Set.class, boolean.class, boolean.class);
         method1.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size()); 
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/parent");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent/child");
         when(result.getName()).thenReturn("child");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent/child");
-        
+
         final Resource jcrContentResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/child/jcr:content")).thenReturn(jcrContentResult);
         when(jcrContentResult.getParent()).thenReturn(result);
@@ -1253,165 +1258,165 @@ public class MapEntriesTest {
         when(jcrContentResult.getName()).thenReturn("jcr:content");
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContent"));
         when(result.getChild("jcr:content")).thenReturn(jcrContentResult);
-        
+
         method.invoke(mapEntries, "/parent/child/jcr:content");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-  
-        //test with two nodes 
-        assertEquals(1, aliasMap.size()); 
+
+        //test with two nodes
+        assertEquals(1, aliasMap.size());
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(2, aliasMapEntry.size()); 
-        
-        method1.invoke(mapEntries, "/parent/child/jcr:content", new String[] { "sling:alias" }, false, false);
-        
-        assertEquals(1, aliasMap.size()); 
+        assertEquals(2, aliasMapEntry.size());
+
+        method1.invoke(mapEntries, "/parent/child/jcr:content", Collections.singleton("sling:alias"), false, false);
+
+        assertEquals(1, aliasMap.size());
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(1, aliasMapEntry.size());  
-        
+        assertEquals(1, aliasMapEntry.size());
+
         // re-add the node and test /parent/child
         method.invoke(mapEntries, "/parent/child/jcr:content");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-        assertEquals(2, aliasMapEntry.size()); 
-        
-        method1.invoke(mapEntries, "/parent/child", new String[] { "sling:alias" }, false, false);
-        
-        assertEquals(1, aliasMap.size()); 
+        assertEquals(2, aliasMapEntry.size());
+
+        method1.invoke(mapEntries, "/parent/child", Collections.singleton("sling:alias"), false, false);
+
+        assertEquals(1, aliasMap.size());
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(1, aliasMapEntry.size());  
-        
+        assertEquals(1, aliasMapEntry.size());
+
         // re-add the node and test node removal
         method.invoke(mapEntries, "/parent/child");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-        assertEquals(2, aliasMapEntry.size()); 
-        
+        assertEquals(2, aliasMapEntry.size());
+
         when(resourceResolver.getResource("/parent/child/jcr:content")).thenReturn(null);
         when(result.getChild("jcr:content")).thenReturn(null);
-        method1.invoke(mapEntries, "/parent/child/jcr:content", new String[] { "sling:alias" }, true, false);
-        
-        assertEquals(1, aliasMap.size()); 
+        method1.invoke(mapEntries, "/parent/child/jcr:content", Collections.singleton("sling:alias"), true, false);
+
+        assertEquals(1, aliasMap.size());
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
-        assertEquals(1, aliasMapEntry.size());  
-        
+        assertEquals(1, aliasMapEntry.size());
+
         // re-add the node and test node removal for  /parent/child
         when(resourceResolver.getResource("/parent/child/jcr:content")).thenReturn(jcrContentResult);
         when(result.getChild("jcr:content")).thenReturn(jcrContentResult);
         method.invoke(mapEntries, "/parent/child/jcr:content");
-        
-        
+
+
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("child", aliasMapEntry.get("aliasJcrContent"));
-        assertEquals(2, aliasMapEntry.size()); 
-        
-        method1.invoke(mapEntries, "/parent/child", new String[] { "sling:alias" }, true, false);
-        
-        assertEquals(0, aliasMap.size()); 
+        assertEquals(2, aliasMapEntry.size());
+
+        method1.invoke(mapEntries, "/parent/child", Collections.singleton("sling:alias"), true, false);
+
+        assertEquals(0, aliasMap.size());
         aliasMapEntry = mapEntries.getAliasMap("/parent");
         assertNull(aliasMapEntry);
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
-    public void test_doRemoveAlias4() throws Exception {       
+    public void test_doRemoveAlias4() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
-        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, String[].class, boolean.class, boolean.class);
+
+        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, Set.class, boolean.class, boolean.class);
         method1.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size()); 
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent");
         when(result.getName()).thenReturn("parent");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "alias"));
-        
+
         method.invoke(mapEntries, "/parent");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("parent", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
-        method1.invoke(mapEntries, "/parent", new String[] { "sling:alias" }, false, false);
-        
+
+        assertEquals(1, aliasMap.size());
+
+        method1.invoke(mapEntries, "/parent", Collections.singleton("sling:alias"), false, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNull(aliasMapEntry);
-        
-        assertEquals(0, aliasMap.size()); 
-        
+
+        assertEquals(0, aliasMap.size());
+
         //re-add node and test nodeDeletion true
         method.invoke(mapEntries, "/parent");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("alias"));
         assertEquals("parent", aliasMapEntry.get("alias"));
-        
-        assertEquals(1, aliasMap.size()); 
-        
+
+        assertEquals(1, aliasMap.size());
+
         when(resourceResolver.getResource("/parent")).thenReturn(null);
-        method1.invoke(mapEntries, "/parent", new String[] { "sling:alias" }, true, false);
-        
+        method1.invoke(mapEntries, "/parent", Collections.singleton("sling:alias"), true, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNull(aliasMapEntry);
-        
-        assertEquals(0, aliasMap.size()); 
-    } 
-       
+
+        assertEquals(0, aliasMap.size());
+    }
+
     @SuppressWarnings("unchecked")
     @Test
-    public void test_doRemoveAlias5() throws Exception { 
+    public void test_doRemoveAlias5() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doAddAlias", String.class);
         method.setAccessible(true);
-        
-        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, String[].class, boolean.class, boolean.class);
+
+        Method method1 = MapEntries.class.getDeclaredMethod("doRemoveAttributes", String.class, Set.class, boolean.class, boolean.class);
         method1.setAccessible(true);
-        
+
         Field field0 = MapEntries.class.getDeclaredField("aliasMap");
-        field0.setAccessible(true);   
-        
+        field0.setAccessible(true);
+
         Map<String, Map<String, String>> aliasMap = ( Map<String, Map<String, String>>) field0.get(mapEntries);
-        assertEquals(0, aliasMap.size()); 
-        
+        assertEquals(0, aliasMap.size());
+
         Resource parent = mock(Resource.class);
         when(parent.getPath()).thenReturn("/");
-        
+
         final Resource result = mock(Resource.class);
         when(resourceResolver.getResource("/parent")).thenReturn(result);
         when(result.getParent()).thenReturn(parent);
         when(result.getPath()).thenReturn("/parent");
         when(result.getName()).thenReturn("parent");
         when(result.adaptTo(ValueMap.class)).thenReturn(buildValueMap());
-        
+
         //testing jcr:content node removal
         final Resource jcrContentResult = mock(Resource.class);
         when(resourceResolver.getResource("/parent/jcr:content")).thenReturn(jcrContentResult);
@@ -1420,99 +1425,100 @@ public class MapEntriesTest {
         when(jcrContentResult.getName()).thenReturn("jcr:content");
         when(jcrContentResult.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:alias", "aliasJcrContent"));
         when(result.getChild("jcr:content")).thenReturn(jcrContentResult);
-        
+
         method.invoke(mapEntries, "/parent/jcr:content");
-        
+
         Map<String, String> aliasMapEntry = mapEntries.getAliasMap("/");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("parent", aliasMapEntry.get("aliasJcrContent"));
-        
-        assertEquals(1, aliasMap.size());        
-        
-        method1.invoke(mapEntries, "/parent/jcr:content", new String[] { "sling:alias" }, false, false);
-        
+
+        assertEquals(1, aliasMap.size());
+
+        method1.invoke(mapEntries, "/parent/jcr:content", Collections.singleton("sling:alias"), false, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNull(aliasMapEntry);
-        
-        assertEquals(0, aliasMap.size()); 
-        
-        //re-add node and test nodeDeletion true       
+
+        assertEquals(0, aliasMap.size());
+
+        //re-add node and test nodeDeletion true
         method.invoke(mapEntries, "/parent/jcr:content");
-        
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNotNull(aliasMapEntry);
         assertTrue(aliasMapEntry.containsKey("aliasJcrContent"));
         assertEquals("parent", aliasMapEntry.get("aliasJcrContent"));
-        
-        assertEquals(1, aliasMap.size());        
+
+        assertEquals(1, aliasMap.size());
         when(resourceResolver.getResource("/parent/jcr:content")).thenReturn(null);
         when(result.getChild("jcr:content")).thenReturn(null);
-        method1.invoke(mapEntries, "/parent/jcr:content", new String[] { "sling:alias" }, true, false);
-        
+        method1.invoke(mapEntries, "/parent/jcr:content", Collections.singleton("sling:alias"), true, false);
+
         aliasMapEntry = mapEntries.getAliasMap("/");
         assertNull(aliasMapEntry);
-        
+
         assertEquals(0, aliasMap.size());
     }
-    
+
     @Test
     public void test_isValidVanityPath() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("isValidVanityPath", Resource.class);
         method.setAccessible(true);
-        
+
         final Resource resource = mock(Resource.class);
         when(resource.getPath()).thenReturn("/jcr:system/node");
-        
+
         assertFalse((Boolean)method.invoke(mapEntries, resource));
-        
+
         when(resource.getPath()).thenReturn("/justVanityPath");
         assertFalse((Boolean)method.invoke(mapEntries, resource));
-        
+
         when(resource.adaptTo(ValueMap.class)).thenReturn(mock(ValueMap.class));
         assertTrue((Boolean)method.invoke(mapEntries, resource));
     }
-    
+
     @Test
     //SLING-4847
-    public void test_doNodeAdded1() throws Exception { 
+    public void test_doNodeAdded1() throws Exception {
         Method method = MapEntries.class.getDeclaredMethod("doNodeAdded", String.class, boolean.class);
         method.setAccessible(true);
         Boolean resfreshed = (Boolean ) method.invoke(mapEntries, "/node", true);
         assertTrue(resfreshed.booleanValue());
     }
-    
+
     @Test
     //SLING-4891
     public void test_getVanityPaths_1() throws Exception {
-        
+
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 0);
-        
+
         Method method = MapEntries.class.getDeclaredMethod("getVanityPaths", String.class);
         method.setAccessible(true);
-        method.invoke(mapEntries, "/notExisting");   
-        
+        method.invoke(mapEntries, "/notExisting");
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(0, counter.longValue());        
+        assertEquals(0, counter.longValue());
     }
-    
+
     @Test
     //SLING-4891
-    public void test_getVanityPaths_2() throws Exception { 
-        
+    public void test_getVanityPaths_2() throws Exception {
+
         final Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
-        
+
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1521,28 +1527,29 @@ public class MapEntriesTest {
                 }
             }
         });
-        
+
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 0);
-        
+
         Method method = MapEntries.class.getDeclaredMethod("getVanityPaths", String.class);
         method.setAccessible(true);
-        method.invoke(mapEntries, "/target/justVanityPath");   
-        
+        method.invoke(mapEntries, "/target/justVanityPath");
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue());        
-        
+        assertEquals(2, counter.longValue());
+
         final Resource justVanityPath2 = mock(Resource.class, "justVanityPath2");
         when(resourceResolver.getResource("/justVanityPath2")).thenReturn(justVanityPath2);
-        when(justVanityPath2.getPath()).thenReturn("/justVanityPath2");                 
+        when(justVanityPath2.getPath()).thenReturn("/justVanityPath2");
         when(justVanityPath2.getName()).thenReturn("justVanityPath2");
         when(justVanityPath2.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath","sling:vanityOrder", 100));
-        
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1551,26 +1558,27 @@ public class MapEntriesTest {
                 }
             }
         });
-        
+
         method.invoke(mapEntries, "/target/justVanityPath");
-  
+
         counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(4, counter.longValue());  
+        assertEquals(4, counter.longValue());
     }
-    
+
     @Test
     //SLING-4891
-    public void test_getVanityPaths_3() throws Exception { 
-        
+    public void test_getVanityPaths_3() throws Exception {
+
         final Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
-        
+
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1579,37 +1587,38 @@ public class MapEntriesTest {
                 }
             }
         });
-        
+
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 0);
-        
+
         Field field2 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntriesStartup");
-        field2.setAccessible(true);  
+        field2.setAccessible(true);
         field2.set(mapEntries, false);
-        
+
         Method method = MapEntries.class.getDeclaredMethod("getVanityPaths", String.class);
         method.setAccessible(true);
-        method.invoke(mapEntries, "/target/justVanityPath");   
-        
+        method.invoke(mapEntries, "/target/justVanityPath");
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(0, counter.longValue());        
+        assertEquals(0, counter.longValue());
     }
-    
+
     @Test
     //SLING-4891
-    public void test_getVanityPaths_4() throws Exception { 
-        
+    public void test_getVanityPaths_4() throws Exception {
+
         final Resource badVanityPath = mock(Resource.class, "badVanityPath");
         when(badVanityPath.getPath()).thenReturn("/badVanityPath");
         when(badVanityPath.getName()).thenReturn("badVanityPath");
         when(badVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/content/mypage/en-us-{132"));
-        
-        
+
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(badVanityPath).iterator();
@@ -1618,37 +1627,38 @@ public class MapEntriesTest {
                 }
             }
         });
-        
+
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 0);
-        
+
         Field field2 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntriesStartup");
-        field2.setAccessible(true);  
+        field2.setAccessible(true);
         field2.set(mapEntries, true);
-        
+
         Method method = MapEntries.class.getDeclaredMethod("getVanityPaths", String.class);
         method.setAccessible(true);
-        method.invoke(mapEntries, "/content/mypage/en-us-{132");   
-        
+        method.invoke(mapEntries, "/content/mypage/en-us-{132");
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(0, counter.longValue());        
+        assertEquals(0, counter.longValue());
     }
-    
+
     @Test
     //SLING-4891
-    public void test_getVanityPaths_5() throws Exception { 
-        
+    public void test_getVanityPaths_5() throws Exception {
+
         final Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
-        when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));       
-        
+        when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1657,32 +1667,33 @@ public class MapEntriesTest {
                 }
             }
         });
-        
+
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 2);
-        
+
         Field field2 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntriesStartup");
-        field2.setAccessible(true);  
+        field2.setAccessible(true);
         field2.set(mapEntries, false);
-        
+
         Method method = MapEntries.class.getDeclaredMethod("getVanityPaths", String.class);
         method.setAccessible(true);
-        method.invoke(mapEntries, "/target/justVanityPath");   
-        
+        method.invoke(mapEntries, "/target/justVanityPath");
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue());        
-        
+        assertEquals(2, counter.longValue());
+
         final Resource justVanityPath2 = mock(Resource.class, "justVanityPath2");
         when(resourceResolver.getResource("/justVanityPath2")).thenReturn(justVanityPath2);
-        when(justVanityPath2.getPath()).thenReturn("/justVanityPath2");                 
+        when(justVanityPath2.getPath()).thenReturn("/justVanityPath2");
         when(justVanityPath2.getName()).thenReturn("justVanityPath2");
         when(justVanityPath2.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath","sling:vanityOrder", 100));
-        
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1691,28 +1702,29 @@ public class MapEntriesTest {
                 }
             }
         });
-        
+
         method.invoke(mapEntries, "/target/justVanityPath");
-  
+
         counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue());  
+        assertEquals(2, counter.longValue());
     }
-    
+
     @Test
     //SLING-4891
     public void test_loadVanityPaths() throws Exception {
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 2);
-        
+
         final Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
-        when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));       
-        
+        when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1720,30 +1732,31 @@ public class MapEntriesTest {
                     return Collections.<Resource> emptySet().iterator();
                 }
             }
-        });        
-        
+        });
+
         Method method = MapEntries.class.getDeclaredMethod("loadVanityPaths", boolean.class);
         method.setAccessible(true);
-        method.invoke(mapEntries, false);   
-        
+        method.invoke(mapEntries, false);
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue()); 
+        assertEquals(2, counter.longValue());
     }
-    
+
     @Test
     //SLING-4891
     public void test_loadVanityPaths_1() throws Exception {
-        
+
         final Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
-        when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));       
-        
+        when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1751,18 +1764,18 @@ public class MapEntriesTest {
                     return Collections.<Resource> emptySet().iterator();
                 }
             }
-        });        
-        
+        });
+
         Method method = MapEntries.class.getDeclaredMethod("loadVanityPaths", boolean.class);
         method.setAccessible(true);
-        method.invoke(mapEntries, false);   
-        
+        method.invoke(mapEntries, false);
+
         Field vanityCounter = MapEntries.class.getDeclaredField("vanityCounter");
-        vanityCounter.setAccessible(true);  
+        vanityCounter.setAccessible(true);
         AtomicLong counter = (AtomicLong) vanityCounter.get(mapEntries);
-        assertEquals(2, counter.longValue()); 
+        assertEquals(2, counter.longValue());
     }
-    
+
     @Test
     //SLING-4891
     public void test_getMapEntryList() throws Exception {
@@ -1786,6 +1799,7 @@ public class MapEntriesTest {
         when(resourceResolver.findResources(anyString(),
                 eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+                    @Override
                     public Iterator<Resource> answer(InvocationOnMock invocation)
                             throws Throwable {
                         if
@@ -1819,21 +1833,22 @@ public class MapEntriesTest {
         counter = (AtomicLong) vanityCounter.get(mapEntries);
         assertEquals(2, counter.longValue());
     }
-    
+
     @Test
     //SLING-4883
     public void test_concutrrent_getResolveMapsIterator() throws Exception {
         ExecutorService pool = Executors.newFixedThreadPool(10);
-        
+
         final Resource justVanityPath = mock(Resource.class, "justVanityPath");
         when(resourceResolver.getResource("/justVanityPath")).thenReturn(justVanityPath);
-        when(justVanityPath.getPath()).thenReturn("/justVanityPath");                 
+        when(justVanityPath.getPath()).thenReturn("/justVanityPath");
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath", "/target/justVanityPath"));
-        
-        
+
+
         when(resourceResolver.findResources(anyString(), eq("sql"))).thenAnswer(new Answer<Iterator<Resource>>() {
 
+            @Override
             public Iterator<Resource> answer(InvocationOnMock invocation) throws Throwable {
                 if (invocation.getArguments()[0].toString().contains("sling:vanityPath")) {
                     return Collections.singleton(justVanityPath).iterator();
@@ -1842,36 +1857,36 @@ public class MapEntriesTest {
                 }
             }
         });
-        
-        
+
+
         Field field1 = MapEntries.class.getDeclaredField("maxCachedVanityPathEntries");
-        field1.setAccessible(true);  
+        field1.setAccessible(true);
         field1.set(mapEntries, 2);
-        
+
         ArrayList<DataFuture> list = new ArrayList<DataFuture>();
         for (int i =0;i<10;i++) {
             list.add(createDataFuture(pool, mapEntries));
- 
+
         }
- 
+
        for (DataFuture df : list) {
-           df.future.get();           
+           df.future.get();
         }
-  
+
     }
-    
+
     // -------------------------- private methods ----------
     private DataFuture createDataFuture(ExecutorService pool, final MapEntries mapEntries) {
 
         Future<Iterator<?>> future = pool.submit(new Callable<Iterator<?>>() {
             @Override
             public Iterator<MapEntry> call() throws Exception {
-                return mapEntries.getResolveMapsIterator("http/localhost.8080/target/justVanityPath");                     
+                return mapEntries.getResolveMapsIterator("http/localhost.8080/target/justVanityPath");
             }
         });
         return new DataFuture(future);
-    }    
-    
+    }
+
     // -------------------------- inner classes ------------
 
     private static class DataFuture {
@@ -1881,5 +1896,5 @@ public class MapEntriesTest {
             super();
             this.future = future;
         }
-    }    
+    }
 }