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

lukaszlenart pushed a commit to branch feature/WW-3576-session-map-staleness
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 62c8ce3f21ffc8b9348dc183bbc5d88e3d20ec81
Author: Lukasz Lenart <[email protected]>
AuthorDate: Sun Oct 18 09:03:29 2026 +0200

    WW-3576 docs: a put that finds its session invalidated pins a new one once
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
---
 .../specs/2026-10-18-WW-3576-session-map-staleness-design.md       | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/docs/superpowers/specs/2026-10-18-WW-3576-session-map-staleness-design.md 
b/docs/superpowers/specs/2026-10-18-WW-3576-session-map-staleness-design.md
index 87c8ac39f..faa2ff1be 100644
--- a/docs/superpowers/specs/2026-10-18-WW-3576-session-map-staleness-design.md
+++ b/docs/superpowers/specs/2026-10-18-WW-3576-session-map-staleness-design.md
@@ -43,9 +43,10 @@ when that session dies (request threads), and one map that 
is stale *by design*
 
 ## Anti-goals
 
-- Catching `IllegalStateException` and carrying on as if the session were 
alive (PR #1577 retried the
-  write into a new session inside the catch). Catching it to *detect* 
invalidation and answer
-  "no session" is the design.
+- Catching `IllegalStateException` and carrying on as if the session were 
alive (PR #1577 swallowed it in
+  every method and kept the dead reference). Catching it to *detect* 
invalidation, un-pin, and answer
+  "no session" is the design — including a `put` that discovers the 
invalidation, un-pins, and pins a
+  new session once through the normal `request.getSession(true)` path (no 
loop).
 - Any request-thread map that resolves its session through a request after 
that request has ended.
 - Any path by which background writes land in a session other than the one the 
process started in.
 

Reply via email to