This is an automated email from the ASF dual-hosted git repository. markt-asf pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 1fdd539f39f73c83b4970e4fe40cf384d4333875 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 f5e43d1e5d..570f9b5ecf 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 8147fd1e9f..bfad7e0d63 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]
