Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-webapp/src/main/java/org/eclipse/jetty/webapp/CachingWebAppClassLoader.java')
-rw-r--r--jetty-webapp/src/main/java/org/eclipse/jetty/webapp/CachingWebAppClassLoader.java39
1 files changed, 21 insertions, 18 deletions
diff --git a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/CachingWebAppClassLoader.java b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/CachingWebAppClassLoader.java
index e2ff230ce3..1ba5cac6e6 100644
--- a/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/CachingWebAppClassLoader.java
+++ b/jetty-webapp/src/main/java/org/eclipse/jetty/webapp/CachingWebAppClassLoader.java
@@ -25,6 +25,8 @@ import java.util.concurrent.ConcurrentHashMap;
import org.eclipse.jetty.util.ConcurrentHashSet;
import org.eclipse.jetty.util.annotation.ManagedObject;
import org.eclipse.jetty.util.annotation.ManagedOperation;
+import org.eclipse.jetty.util.log.Log;
+import org.eclipse.jetty.util.log.Logger;
/**
@@ -36,6 +38,8 @@ import org.eclipse.jetty.util.annotation.ManagedOperation;
@ManagedObject
public class CachingWebAppClassLoader extends WebAppClassLoader
{
+ private static final Logger LOG = Log.getLogger(CachingWebAppClassLoader.class);
+
private final ConcurrentHashSet<String> _notFound = new ConcurrentHashSet<>();
private final ConcurrentHashMap<String,URL> _cache = new ConcurrentHashMap<>();
@@ -53,7 +57,11 @@ public class CachingWebAppClassLoader extends WebAppClassLoader
public URL getResource(String name)
{
if (_notFound.contains(name))
+ {
+ if (LOG.isDebugEnabled())
+ LOG.debug("Not found cache hit resource {}",name);
return null;
+ }
URL url = _cache.get(name);
@@ -63,6 +71,8 @@ public class CachingWebAppClassLoader extends WebAppClassLoader
if (url==null)
{
+ if (LOG.isDebugEnabled())
+ LOG.debug("Caching not found resource {}",name);
_notFound.add(name);
}
else
@@ -75,33 +85,26 @@ public class CachingWebAppClassLoader extends WebAppClassLoader
}
@Override
- protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException
+ public Class<?> loadClass(String name) throws ClassNotFoundException
{
if (_notFound.contains(name))
- throw new ClassNotFoundException(name+": in notfound cache");
- try
- {
- return super.loadClass(name,resolve);
- }
- catch (ClassNotFoundException nfe)
{
- _notFound.add(name);
- throw nfe;
- }
- }
-
- @Override
- protected Class<?> findClass(String name) throws ClassNotFoundException
- {
- if (_notFound.contains(name))
+ if (LOG.isDebugEnabled())
+ LOG.debug("Not found cache hit resource {}",name);
throw new ClassNotFoundException(name+": in notfound cache");
+ }
try
{
- return super.findClass(name);
+ return super.loadClass(name);
}
catch (ClassNotFoundException nfe)
{
- _notFound.add(name);
+ if (_notFound.add(name))
+ if (LOG.isDebugEnabled())
+ {
+ LOG.debug("Caching not found {}",name);
+ LOG.debug(nfe);
+ }
throw nfe;
}
}

Back to the top