[ 
https://issues.apache.org/jira/browse/SLING-2741?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13584270#comment-13584270
 ] 

Antonio Sanso commented on SLING-2741:
--------------------------------------

patch to reproduce the issue using unit test

#P org.apache.sling.resourceresolver
Index: 
src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java
===================================================================
--- 
src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java
    (revision 1449037)
+++ 
src/test/java/org/apache/sling/resourceresolver/impl/mapping/MapEntriesTest.java
    (working copy)
@@ -150,6 +150,13 @@
         when(justVanityPath.getName()).thenReturn("justVanityPath");
         
when(justVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath",
 "/target/justVanityPath"));
         resources.add(justVanityPath);
+        
+        Resource badVanityPath = mock(Resource.class);
+        when(badVanityPath.getPath()).thenReturn("/badVanityPath");
+        when(badVanityPath.getName()).thenReturn("badVanityPath");
+        
when(badVanityPath.adaptTo(ValueMap.class)).thenReturn(buildValueMap("sling:vanityPath",
 "/content/mypage/en-us-{132"));
+        resources.add(badVanityPath);
+                
 
         Resource redirectingVanityPath = mock(Resource.class);
         
when(redirectingVanityPath.getPath()).thenReturn("/redirectingVanityPath");

                
> Bad Vanity URL  breaks whole Sling Resource Resolver
> ----------------------------------------------------
>
>                 Key: SLING-2741
>                 URL: https://issues.apache.org/jira/browse/SLING-2741
>             Project: Sling
>          Issue Type: Bug
>          Components: ResourceResolver
>    Affects Versions: Resource Resolver 1.0.6
>            Reporter: Antonio Sanso
>
> *Configure a vanity url with this string:
> "/content/mypage/en-us-{132"
> *After saving you will see [1] in the logs.
> * Restart Sling, there is warning [2]
> *Go to OSGi console and Sling Resource Resolver tab 
> (http://localhost:4502/system/console/jcrresolver)
> * Observe the no mapping is loaded.
> [1]
> 18.02.2013 16:00:15.210 WARN [MapEntries Update] 
> org.apache.sling.jcr.resource.internal.helper.MapEntries doInit: Unexpected 
> problem during initialization java.util.regex.PatternSyntaxException: 
> Unclosed counted closure near index 38
> ^[^/]/[^/]/content/mypage/en-us-{132$
> ^
> at java.util.regex.Pattern.error(Pattern.java:1713)
> at java.util.regex.Pattern.closure(Pattern.java:2759)
> at java.util.regex.Pattern.sequence(Pattern.java:1889)
> at java.util.regex.Pattern.expr(Pattern.java:1752)
> at java.util.regex.Pattern.compile(Pattern.java:1460)
> at java.util.regex.Pattern.<init>(Pattern.java:1133)
> at java.util.regex.Pattern.compile(Pattern.java:823)
> at 
> org.apache.sling.jcr.resource.internal.helper.MapEntry.<init>(MapEntry.java:234)
> at 
> org.apache.sling.jcr.resource.internal.helper.MapEntries.loadVanityPaths(MapEntries.java:559)
> at 
> org.apache.sling.jcr.resource.internal.helper.MapEntries.doInit(MapEntries.java:198)
> at 
> org.apache.sling.jcr.resource.internal.helper.MapEntries.init(MapEntries.java:167)
> at 
> org.apache.sling.jcr.resource.internal.helper.MapEntries$1.run(MapEntries.java:140)
> at java.lang.Thread.run(Thread.java:680)
> [2]   2.02.2013 13:53:15.537 *WARN* [FelixStartLevel] 
> org.apache.sling.resourceresolver.impl.mapping.MapEntries doInit: Unexpected 
> problem during initialization java.util.regex.PatternSyntaxException: 
> Unclosed counted closure near index 38
> ^[^/]+/[^/]+/content/mypage/en-us-{132$
>                                       ^
>       at java.util.regex.Pattern.error(Pattern.java:1713)
>       at java.util.regex.Pattern.closure(Pattern.java:2759)
>       at java.util.regex.Pattern.sequence(Pattern.java:1889)
>       at java.util.regex.Pattern.expr(Pattern.java:1752)
>       at java.util.regex.Pattern.compile(Pattern.java:1460)
>       at java.util.regex.Pattern.<init>(Pattern.java:1133)
>       at java.util.regex.Pattern.compile(Pattern.java:823)
>       at 
> org.apache.sling.resourceresolver.impl.mapping.MapEntry.<init>(MapEntry.java:241)
>       at 
> org.apache.sling.resourceresolver.impl.mapping.MapEntries.loadVanityPaths(MapEntries.java:600)
>       at 
> org.apache.sling.resourceresolver.impl.mapping.MapEntries.doInit(MapEntries.java:206)
>       at 
> org.apache.sling.resourceresolver.impl.mapping.MapEntries.<init>(MapEntries.java:138)
>       at 
> org.apache.sling.resourceresolver.impl.ResourceResolverFactoryImpl.activate(ResourceResolverFactoryImpl.java:116)
>       at 
> org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.checkFactoryPreconditions(ResourceResolverFactoryActivator.java:319)
>       at 
> org.apache.sling.resourceresolver.impl.ResourceResolverFactoryActivator.activate(ResourceResolverFactoryActivator.java:282)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:236)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:613)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:496)
>       at 
> org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:149)
>       at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:251)
>       at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:119)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Unsatisfied.activate(AbstractComponentManager.java:1518)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:550)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:261)
>       at 
> org.apache.felix.scr.impl.config.ImmediateComponentHolder.enableComponents(ImmediateComponentHolder.java:328)
>       at 
> org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:158)
>       at 
> org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:113)
>       at 
> org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:261)
>       at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:179)
>       at 
> org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:868)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:789)
>       at 
> org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:514)
>       at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4319)
>       at org.apache.felix.framework.Felix.startBundle(Felix.java:1993)
>       at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1261)
>       at 
> org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:298)
>       at java.lang.Thread.run(Thread.java:637)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to