This is an automated email from the ASF dual-hosted git repository.

rmaucher pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 33aa731b01 WAR URL connection should propagate use of cache
33aa731b01 is described below

commit 33aa731b01b4226429f25d49932d100f7bd98dd1
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     | 28 ++++++++++++++++++++++
 webapps/docs/changelog.xml                         |  3 +++
 3 files changed, 54 insertions(+)

diff --git a/java/org/apache/catalina/webresources/war/WarURLConnection.java 
b/java/org/apache/catalina/webresources/war/WarURLConnection.java
index ef86747bde..1fae4881dc 100644
--- a/java/org/apache/catalina/webresources/war/WarURLConnection.java
+++ b/java/org/apache/catalina/webresources/war/WarURLConnection.java
@@ -92,4 +92,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 f005115824..874514547a 100644
--- a/test/org/apache/catalina/webresources/war/TestWarURLConnection.java
+++ b/test/org/apache/catalina/webresources/war/TestWarURLConnection.java
@@ -17,6 +17,8 @@
 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;
 
@@ -49,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 d03b4bb15e..a0dcdf5de8 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -188,6 +188,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]

Reply via email to