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

markt-asf 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 d7855ba878 Expand test coverage
d7855ba878 is described below

commit d7855ba8788bd61bb4fad1fe1996f12d564aa26c
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Oct 7 14:57:12 2026 +0100

    Expand test coverage
    
    Co-authored-by: Claude Sonnet 5.5
---
 .../catalina/ha/session/TestDeltaSession.java      | 23 ++++++++++++++++++++++
 .../apache/catalina/manager/TestManagerWebapp.java |  7 ++++++-
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/test/org/apache/catalina/ha/session/TestDeltaSession.java 
b/test/org/apache/catalina/ha/session/TestDeltaSession.java
index 9b2c6db209..d6aefeb13c 100644
--- a/test/org/apache/catalina/ha/session/TestDeltaSession.java
+++ b/test/org/apache/catalina/ha/session/TestDeltaSession.java
@@ -105,4 +105,27 @@ public class TestDeltaSession {
         Assert.assertNull(setAttributeException.get());
         Assert.assertNull(expireException.get());
     }
+
+
+    @Test
+    public void testIsAccessReplicateNonPositiveInterval() {
+        DeltaSession session = new DeltaSession(new StandardManager());
+        // Last replicated long enough ago to exceed any reasonable interval
+        session.setLastTimeReplicated(System.currentTimeMillis() - 3600 * 
1000L);
+
+        // Zero or negative means the session never times out so there is no
+        // need to replicate access
+        session.setMaxInactiveInterval(0);
+        Assert.assertFalse(session.isAccessReplicate());
+        session.setMaxInactiveInterval(-1);
+        Assert.assertFalse(session.isAccessReplicate());
+
+        // Positive interval that has elapsed since last replication
+        session.setMaxInactiveInterval(60);
+        Assert.assertTrue(session.isAccessReplicate());
+
+        // Positive interval that has not yet elapsed
+        session.setLastTimeReplicated(System.currentTimeMillis());
+        Assert.assertFalse(session.isAccessReplicate());
+    }
 }
diff --git a/test/org/apache/catalina/manager/TestManagerWebapp.java 
b/test/org/apache/catalina/manager/TestManagerWebapp.java
index eb4cc4fab4..30f12d4e52 100644
--- a/test/org/apache/catalina/manager/TestManagerWebapp.java
+++ b/test/org/apache/catalina/manager/TestManagerWebapp.java
@@ -649,6 +649,11 @@ public class TestManagerWebapp extends TomcatBaseTest {
         unlimited.setMaxInactiveInterval(-1);
         manager.add(unlimited);
 
+        // An interval of zero also means the session never times out
+        Session zeroInterval = manager.createSession(null);
+        zeroInterval.setMaxInactiveInterval(0);
+        manager.add(zeroInterval);
+
         Session limited = manager.createSession(null);
         manager.add(limited);
 
@@ -680,7 +685,7 @@ public class TestManagerWebapp extends TomcatBaseTest {
         client.processRequest(true);
         Assert.assertEquals(HttpServletResponse.SC_OK, client.getStatusCode());
         Assert.assertTrue(client.getResponseBody(),
-                client.getResponseBody().contains("Unlimited time: [1] 
sessions"));
+                client.getResponseBody().contains("Unlimited time: [2] 
sessions"));
         // The unlimited session must not also appear in an idle bucket
         Assert.assertTrue(client.getResponseBody(),
                 client.getResponseBody().contains("Inactive for [<1] minutes: 
[1] sessions"));


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to