You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2015/01/27 20:39:42 UTC
svn commit: r1655133 - in /tomcat/trunk/java/org/apache/catalina: core/
webresources/
Author: markt
Date: Tue Jan 27 19:39:42 2015
New Revision: 1655133
URL: http://svn.apache.org/r1655133
Log:
Better comments
Modified:
tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResource.java
tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResourceSet.java
tomcat/trunk/java/org/apache/catalina/webresources/AbstractFileResourceSet.java
tomcat/trunk/java/org/apache/catalina/webresources/AbstractResourceSet.java
tomcat/trunk/java/org/apache/catalina/webresources/EmptyResourceSet.java
Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1655133&r1=1655132&r2=1655133&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Tue Jan 27 19:39:42 2015
@@ -5216,7 +5216,11 @@ public class StandardContext extends Con
broadcaster.sendNotification(notification);
}
- // Trigger clean-up of the resources
+ // The WebResources implementation caches references to JAR files. On
+ // some platforms these references may lock the JAR files. The
+ // WebResources implementaion cleans-up unused JAR file references every
+ // run of background processing but since web application start is
+ // likely to have read from lots of JARs, trigger a clean-up now.
getResources().backgroundProcess();
// Reinitializing if something went wrong
Modified: tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResource.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResource.java?rev=1655133&r1=1655132&r2=1655133&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResource.java (original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResource.java Tue Jan 27 19:39:42 2015
@@ -214,6 +214,12 @@ public abstract class AbstractArchiveRes
protected abstract JarInputStreamWrapper getJarInputStreamWrapper();
+ /**
+ * This wrapper assumes that the InputStream was created from a JarFile
+ * obtained from a call to getArchiveResourceSet().getJarFile(). If this is
+ * not the case then the usage counting in AbstractArchiveResourceSet will
+ * break and the JarFile may be unexpectedly closed.
+ */
protected class JarInputStreamWrapper extends InputStream {
private final JarEntry jarEntry;
@@ -258,8 +264,6 @@ public abstract class AbstractArchiveRes
@Override
public void close() throws IOException {
- // Closing the JarFile releases the file lock on the JAR and also
- // closes all input streams created from the JarFile.
archiveResourceSet.closeJarFile();
}
Modified: tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResourceSet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResourceSet.java?rev=1655133&r1=1655132&r2=1655133&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResourceSet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/AbstractArchiveResourceSet.java Tue Jan 27 19:39:42 2015
@@ -42,7 +42,6 @@ public abstract class AbstractArchiveRes
private JarFile archive = null;
private final Object archiveLock = new Object();
private long archiveUseCount = 0;
- private long archiveLastUsed = 0;
protected final void setManifest(Manifest manifest) {
@@ -284,7 +283,6 @@ public abstract class AbstractArchiveRes
archive = new JarFile(getBase());
}
archiveUseCount++;
- archiveLastUsed = System.currentTimeMillis();
return archive;
}
}
Modified: tomcat/trunk/java/org/apache/catalina/webresources/AbstractFileResourceSet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/AbstractFileResourceSet.java?rev=1655133&r1=1655132&r2=1655133&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/AbstractFileResourceSet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/AbstractFileResourceSet.java Tue Jan 27 19:39:42 2015
@@ -126,8 +126,19 @@ public abstract class AbstractFileResour
}
}
+ /**
+ * {@inheritDoc}
+ * <p>
+ * This is a NO-OP by default for File based resource sets.
+ */
+ @Override
+ public void backgroundProcess() {
+ // NO-OP
+ }
+
//-------------------------------------------------------- Lifecycle methods
+
@Override
protected void initInternal() throws LifecycleException {
fileBase = new File(getBase(), getInternalPath());
Modified: tomcat/trunk/java/org/apache/catalina/webresources/AbstractResourceSet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/AbstractResourceSet.java?rev=1655133&r1=1655132&r2=1655133&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/AbstractResourceSet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/AbstractResourceSet.java Tue Jan 27 19:39:42 2015
@@ -111,11 +111,6 @@ public abstract class AbstractResourceSe
this.staticOnly = staticOnly;
}
- @Override
- public void backgroundProcess() {
- // NO-OP
- }
-
//-------------------------------------------------------- Lifecycle methods
@Override
Modified: tomcat/trunk/java/org/apache/catalina/webresources/EmptyResourceSet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/webresources/EmptyResourceSet.java?rev=1655133&r1=1655132&r2=1655133&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/webresources/EmptyResourceSet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/webresources/EmptyResourceSet.java Tue Jan 27 19:39:42 2015
@@ -152,13 +152,11 @@ public class EmptyResourceSet extends Li
return true;
}
-
@Override
public void backgroundProcess() {
// NO-OP
}
-
@Override
protected void initInternal() throws LifecycleException {
// NO-OP
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org