diff options
author | Greg Wilkins | 2010-07-09 04:45:52 +0000 |
---|---|---|
committer | Greg Wilkins | 2010-07-09 04:45:52 +0000 |
commit | 9f0a75da75abcd72902074b0d15d4325ae9db902 (patch) | |
tree | b9ad7d36ba495c995eb43bafe7fac89b83a4e830 /jetty-util | |
parent | 2605267f3fb3b9c6433d76ba964f135111526008 (diff) | |
download | org.eclipse.jetty.project-9f0a75da75abcd72902074b0d15d4325ae9db902.tar.gz org.eclipse.jetty.project-9f0a75da75abcd72902074b0d15d4325ae9db902.tar.xz org.eclipse.jetty.project-9f0a75da75abcd72902074b0d15d4325ae9db902.zip |
319334 improved resource cache
Made the cache use concurrent data structures
Removed the dual NIO/BIO caches
Use the cache for streaming data
made DefaultServlet check for shared cache
some javadoc cleanups
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2085 7e9141cc-0065-0410-87d8-b60c137991c4
Diffstat (limited to 'jetty-util')
5 files changed, 46 insertions, 35 deletions
diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java index dc933bafb7..a7fdc9f7ee 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java @@ -27,16 +27,14 @@ import org.eclipse.jetty.util.log.Log; /* ------------------------------------------------------------ */ class JarFileResource extends JarResource { - - transient JarFile _jarFile; - transient File _file; - transient String[] _list; - transient JarEntry _entry; - transient boolean _directory; - transient String _jarUrl; - transient String _path; - transient boolean _exists; - + private JarFile _jarFile; + private File _file; + private String[] _list; + private JarEntry _entry; + private boolean _directory; + private String _jarUrl; + private String _path; + private boolean _exists; /* -------------------------------------------------------- */ JarFileResource(URL url) @@ -44,6 +42,7 @@ class JarFileResource extends JarResource super(url); } + /* ------------------------------------------------------------ */ JarFileResource(URL url, boolean useCaches) { super(url, useCaches); @@ -65,7 +64,8 @@ class JarFileResource extends JarResource @Override protected boolean checkConnection() { - try{ + try + { super.checkConnection(); } finally @@ -84,7 +84,7 @@ class JarFileResource extends JarResource /* ------------------------------------------------------------ */ @Override - protected void newConnection() + protected synchronized void newConnection() throws IOException { super.newConnection(); diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarResource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarResource.java index b7534fffe3..c79b1a6ed4 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarResource.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarResource.java @@ -31,8 +31,7 @@ import org.eclipse.jetty.util.log.Log; /* ------------------------------------------------------------ */ public class JarResource extends URLResource { - - protected transient JarURLConnection _jarConnection; + protected JarURLConnection _jarConnection; /* -------------------------------------------------------- */ JarResource(URL url) @@ -56,7 +55,7 @@ public class JarResource extends URLResource /* ------------------------------------------------------------ */ @Override - protected boolean checkConnection() + protected synchronized boolean checkConnection() { super.checkConnection(); try @@ -120,16 +119,6 @@ public class JarResource extends URLResource InputStream is = url.openStream(); return is; } - - /* ------------------------------------------------------------ */ - @Deprecated - public void extract(File dest, boolean deleteOnExit) - throws IOException - { - if (deleteOnExit) - dest.deleteOnExit(); - copyTo(dest); - } /* ------------------------------------------------------------ */ @Override diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java index 44e8ba6916..8e55d97316 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java @@ -37,10 +37,10 @@ import org.eclipse.jetty.util.log.Log; /** * Abstract resource class. */ -public abstract class Resource implements Serializable +public abstract class Resource { public static boolean __defaultUseCaches = true; - Object _associate; + volatile Object _associate; /** * Change the default setting for url connection caches. @@ -51,7 +51,8 @@ public abstract class Resource implements Serializable { __defaultUseCaches=useCaches; } - + + /* ------------------------------------------------------------ */ public static boolean getDefaultUseCaches () { return __defaultUseCaches; @@ -61,6 +62,7 @@ public abstract class Resource implements Serializable /** Construct a resource from a uri. * @param uri A URI. * @return A Resource object. + * @throws IOException Problem accessing URI */ public static Resource newResource(URI uri) throws IOException @@ -72,6 +74,7 @@ public abstract class Resource implements Serializable /** Construct a resource from a url. * @param url A URL. * @return A Resource object. + * @throws IOException Problem accessing URL */ public static Resource newResource(URL url) throws IOException @@ -199,6 +202,9 @@ public abstract class Resource implements Serializable /** Construct a system resource from a string. * The resource is tried as classloader resource before being * treated as a normal resource. + * @param resource Resource as string representation + * @return The new Resource + * @throws IOException Problem accessing resource. */ public static Resource newSystemResource(String resource) throws IOException @@ -287,6 +293,7 @@ public abstract class Resource implements Serializable return newResource(url,useCaches); } + /* ------------------------------------------------------------ */ public static boolean isContainedIn (Resource r, Resource containingResource) throws MalformedURLException { return r.isContainedIn(containingResource); @@ -298,12 +305,13 @@ public abstract class Resource implements Serializable { release(); } - + + /* ------------------------------------------------------------ */ public abstract boolean isContainedIn (Resource r) throws MalformedURLException; /* ------------------------------------------------------------ */ - /** Release any resources held by the resource. + /** Release any temporary resources held by the resource. */ public abstract void release(); diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/URLResource.java b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/URLResource.java index 016322cfb8..f7629c9c2b 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/resource/URLResource.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/resource/URLResource.java @@ -32,12 +32,11 @@ import org.eclipse.jetty.util.log.Log; */ public class URLResource extends Resource { - - - protected URL _url; + protected final URL _url; protected String _urlString; - protected transient URLConnection _connection; - protected transient InputStream _in=null; + + protected URLConnection _connection; + protected InputStream _in=null; transient boolean _useCaches = Resource.__defaultUseCaches; /* ------------------------------------------------------------ */ @@ -48,6 +47,7 @@ public class URLResource extends Resource _connection=connection; } + /* ------------------------------------------------------------ */ protected URLResource (URL url, URLConnection connection, boolean useCaches) { this (url, connection); diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java b/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java index 6c89832e70..45a07b9fdb 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java @@ -125,7 +125,21 @@ public class QueuedThreadPool extends AbstractLifeCycle implements ThreadPool, E Thread.yield(); int size=_threads.size(); if (size>0) + { Log.warn(size+" threads could not be stopped"); + + if (Log.isDebugEnabled()) + { + for (Thread unstopped : _threads) + { + Log.debug("Couldn't stop "+unstopped); + for (StackTraceElement element : unstopped.getStackTrace()) + { + Log.debug(" at "+element); + } + } + } + } synchronized (_joinLock) { |