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