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

Adriano dos Santos Fernandes commented on WICKET-3907:
------------------------------------------------------

In 1.4.1 there is no warning when I try to access a non-existent page of a 
mounted package.

> Mounted resources sharing a parent URL with mounted pages makes wicket log 
> warnings for valid resources
> -------------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-3907
>                 URL: https://issues.apache.org/jira/browse/WICKET-3907
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-core
>    Affects Versions: 1.5-RC5.1
>            Reporter: Adriano dos Santos Fernandes
>
> Say you mount a resource (ResourceMapper) in /test/nonClassName and mount a 
> package (MountMapper) in /test.
> When you try to access /test/nonClassName, wicket tries the MountMapper (as 
> its compatibility score is higher) and tries to load the class nonClassName.
> Here are the relevant code paths:
> AbstractClassResolver:
> // synchronize on the only class member to load only one class at a time and
> // prevent LinkageError. See above for more info
> synchronized (classes)
> {
>       clazz = Class.forName(className, false, getClassLoader());
>       if (clazz == null)
>       {
>               throw new ClassNotFoundException(className);
>       }
> }
> classes.put(className, new WeakReference<Class<?>>(clazz));
> WicketObjects:
> public static <T> Class<T> resolveClass(final String className)
> {
>       Class<T> resolved = null;
>       try
>       {
>               if (Application.exists())
>               {
>                       resolved = (Class<T>)Application.get()
>                               .getApplicationSettings()
>                               .getClassResolver()
>                               .resolveClass(className);
>               }
>               if (resolved == null)
>               {
>                       resolved = (Class<T>)Class.forName(className, false, 
> Thread.currentThread()
>                               .getContextClassLoader());
>               }
>       }
>       catch (ClassNotFoundException cnfx)
>       {
>               log.warn("Could not resolve class [" + className + "]", cnfx);
>       }
>       return resolved;
> }
> ResourceMapper:
> public int getCompatibilityScore(Request request)
> {
>       return 0; // pages always have priority over resources
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to