This is an automated email from the ASF dual-hosted git repository.
rmaucher pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/11.0.x by this push:
new 19c68829e3 WAR URL connection should propagate use of cache
19c68829e3 is described below
commit 19c68829e3f4370913790a19442527d865ff45f0
Author: remm <[email protected]>
AuthorDate: Wed Sep 2 21:45:48 2026 +0200
WAR URL connection should propagate use of cache
Found by code review.
---
.../webresources/war/WarURLConnection.java | 23 ++++++++++++++++++
.../webresources/war/TestWarURLConnection.java | 27 ++++++++++++++++++++++
webapps/docs/changelog.xml | 3 +++
3 files changed, 53 insertions(+)
diff --git a/java/org/apache/catalina/webresources/war/WarURLConnection.java
b/java/org/apache/catalina/webresources/war/WarURLConnection.java
index 3ed14fcc08..93fd013dfd 100644
--- a/java/org/apache/catalina/webresources/war/WarURLConnection.java
+++ b/java/org/apache/catalina/webresources/war/WarURLConnection.java
@@ -93,4 +93,27 @@ public class WarURLConnection extends URLConnection {
return wrappedJarUrlConnection.getContentLengthLong();
}
+
+ @Override
+ public void setUseCaches(boolean usecaches) {
+ wrappedJarUrlConnection.setUseCaches(usecaches);
+ }
+
+
+ @Override
+ public boolean getUseCaches() {
+ return wrappedJarUrlConnection.getUseCaches();
+ }
+
+
+ @Override
+ public void setDefaultUseCaches(boolean defaultusecaches) {
+ wrappedJarUrlConnection.setDefaultUseCaches(defaultusecaches);
+ }
+
+
+ @Override
+ public boolean getDefaultUseCaches() {
+ return wrappedJarUrlConnection.getDefaultUseCaches();
+ }
}
diff --git
a/test/org/apache/catalina/webresources/war/TestWarURLConnection.java
b/test/org/apache/catalina/webresources/war/TestWarURLConnection.java
index a3db19ee1d..b195a28a5c 100644
--- a/test/org/apache/catalina/webresources/war/TestWarURLConnection.java
+++ b/test/org/apache/catalina/webresources/war/TestWarURLConnection.java
@@ -17,6 +17,7 @@
package org.apache.catalina.webresources.war;
import java.io.File;
+import java.io.InputStream;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
@@ -50,4 +51,30 @@ public class TestWarURLConnection {
Assert.assertEquals(137, size);
}
+
+
+ @Test
+ public void testSetUseCaches() throws Exception {
+ File f = new File("test/webresources/war-url-connection.war");
+ String fileUrl = f.toURI().toURL().toString();
+
+ URL warUrl = URI.create("war:" + fileUrl +
"*/WEB-INF/lib/test.jar").toURL();
+
+ URLConnection urlConn = warUrl.openConnection();
+ Assert.assertTrue(urlConn instanceof WarURLConnection);
+
+ urlConn.setUseCaches(false);
+ Assert.assertFalse(urlConn.getUseCaches());
+
+ try (InputStream is = urlConn.getInputStream()) {
+ is.readAllBytes();
+ }
+
+ try {
+ urlConn.getInputStream();
+ Assert.fail("Expected IllegalStateException");
+ } catch (IllegalStateException expected) {
+ // Expected as the JarFile has been closed
+ }
+ }
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 98aee3e7d9..471227326b 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -176,6 +176,9 @@
Fix storeconfig not saving the path when a context is saved in
server.xml. (remm)
</fix>
+ <fix>
+ WAR URLConnection should propagate use of caching. (remm)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]