Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2010-07-09 04:45:52 +0000
committerGreg Wilkins2010-07-09 04:45:52 +0000
commit9f0a75da75abcd72902074b0d15d4325ae9db902 (patch)
treeb9ad7d36ba495c995eb43bafe7fac89b83a4e830 /jetty-util
parent2605267f3fb3b9c6433d76ba964f135111526008 (diff)
downloadorg.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')
-rw-r--r--jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarFileResource.java24
-rw-r--r--jetty-util/src/main/java/org/eclipse/jetty/util/resource/JarResource.java15
-rw-r--r--jetty-util/src/main/java/org/eclipse/jetty/util/resource/Resource.java18
-rw-r--r--jetty-util/src/main/java/org/eclipse/jetty/util/resource/URLResource.java10
-rw-r--r--jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java14
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)
{

Back to the top