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

lukaszlenart pushed a commit to branch feat/struts-730-modernization
in repository https://gitbox.apache.org/repos/asf/struts-examples.git

commit 5bbcc1691b8c8d2f3aad76cd5a2a2828df4116c5
Author: Lukasz Lenart <[email protected]>
AuthorDate: Fri Aug 14 13:11:43 2026 +0200

    Fix module count in struts-730-modernization plan
    
    Corrected documentation to distinguish between 7 modules (not 8)
    and 8 classes containing the 17 @StrutsParameter annotations.
    
    Co-Authored-By: Claude Opus 5 <[email protected]>
---
 docs/superpowers/plans/2026-08-14-struts-730-modernization.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/superpowers/plans/2026-08-14-struts-730-modernization.md 
b/docs/superpowers/plans/2026-08-14-struts-730-modernization.md
index 20fadda..049e860 100644
--- a/docs/superpowers/plans/2026-08-14-struts-730-modernization.md
+++ b/docs/superpowers/plans/2026-08-14-struts-730-modernization.md
@@ -313,7 +313,7 @@ Co-Authored-By: Claude Opus 5 <[email protected]>"
 
 Eight fixes across five classes in four modules. Each was hand-verified 
against the submitting JSP form.
 
-**Correction (added after the final whole-branch review):** the audit above 
was not exhaustive. It matched only `name=` on `<s:*>` tags — missing `key=`, 
which also sets the parameter name — and it did not consider accessors 
inherited from a superclass. This let three modules slip through with every 
submitted parameter silently dropped: `bean-validation` and `themes-override` 
(`EditAction.getPersonBean()`, JSPs use `key=`) and `mailreader2` 
(`MailreaderSupport`, the shared base class for [...]
+**Correction (added after the final whole-branch review):** the audit above 
was not exhaustive. It matched only `name=` on `<s:*>` tags — missing `key=`, 
which also sets the parameter name — and it did not consider accessors 
inherited from a superclass. This let three modules slip through with every 
submitted parameter silently dropped: `bean-validation` and `themes-override` 
(`EditAction.getPersonBean()`, JSPs use `key=`) and `mailreader2` 
(`MailreaderSupport`, the shared base class for [...]
 
 Rules being applied, from 
`ParametersInterceptor.hasValidAnnotatedPropertyDescriptor`:
 - depth 0 → annotation goes on the **setter**
@@ -766,4 +766,4 @@ Expected: roughly 140–150 files. The per-task counts are 
the authoritative che
   - `text-provider` — `SystemAction.setTextProvider` is `@Inject`-driven, not 
a request parameter.
   - `file-upload` and `sitemesh3` — `UploadAction implements 
UploadedFilesAware` and receives files via 
`withUploadedFiles(List<UploadedFile>)`. There is no `setUpload`; `<s:file>` is 
consumed by the file-upload interceptor, not `ParametersInterceptor`.
   - `struts-parameter` — `users[%{#status.index}].id` evaluates to 
`users[0].id`, depth 2. The existing `@StrutsParameter(depth = 2)` is already 
correct.
-- **No `unverified` rows** — but this was not accurate: the audit missed three 
modules by matching only `name=` on `<s:*>` tags (not `key=`) and by not 
considering accessors inherited from a superclass. The final whole-branch 
review caught `bean-validation`, `themes-override`, and `mailreader2` and added 
9 further annotations, bringing the total to 17 across 8 modules.
+- **No `unverified` rows** — but this was not accurate: the audit missed three 
modules by matching only `name=` on `<s:*>` tags (not `key=`) and by not 
considering accessors inherited from a superclass. The final whole-branch 
review caught `bean-validation`, `themes-override`, and `mailreader2` and added 
9 further annotations, bringing the total to 17 across 7 modules, in 8 classes.

Reply via email to