[
https://issues.apache.org/jira/browse/WW-5326?focusedWorklogId=1013567&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1013567
]
ASF GitHub Bot logged work on WW-5326:
--------------------------------------
Author: ASF GitHub Bot
Created on: 06/Apr/26 17:49
Start Date: 06/Apr/26 17:49
Worklog Time Spent: 10m
Work Description: lukaszlenart opened a new pull request, #1654:
URL: https://github.com/apache/struts/pull/1654
## Summary
Fixes [WW-5326](https://issues.apache.org/jira/browse/WW-5326)
Upgrades Apache Struts from OGNL 3.4.10 to 3.5.0-BETA4 and introduces
`StrutsContext extends OgnlContext<StrutsContext>` as the framework's own OGNL
evaluation context. This lays the foundation for treating OGNL as an execution
sandbox with typed, Struts-specific context state.
### Changes
- **OGNL version bump**: 3.4.10 → 3.5.0-BETA4 (Java 17 baseline)
- **StrutsContext**: New class extending `OgnlContext<StrutsContext>` —
Struts' own OGNL context
- **Generic type ripple**: All OGNL interface implementations parameterized
with `<StrutsContext>` (~22 classes in core)
- **Direct context construction**: Replaced `Ognl.createDefaultContext()`
with direct `new StrutsContext(...)` in `OgnlUtil`, `OgnlValueStack`
- **Tiles plugin**: Accessors use raw `OgnlContext` with
`@SuppressWarnings("rawtypes")` since OGNL internally creates raw `OgnlContext`
when calling `Ognl.getValue()`
- **Tests**: Updated 9 test files, all 2908 core tests pass
### Design decisions
- **Direct construction over `Ognl.withBuilderProvider()`**: Gives Struts
full ownership of context lifecycle, avoids global-state issues
- **Tiles raw types**: Tiles accessors operate outside Struts' context
lifecycle — OGNL's internal `Ognl.getValue()` creates raw `OgnlContext`, not
`StrutsContext`, so tiles must use raw types
- **Phase 1 only**: This PR introduces the class with zero behavioral
change. Promoting `ReflectionContextState` map entries to typed `StrutsContext`
fields is Phase 2
## Test plan
- [x] Core module: 2908 tests, 0 failures
- [x] Tiles plugin: 545 tests, 0 failures
- [x] Spring plugin: 61 tests, 0 failures
- [x] JSON, REST plugins: all pass
- [ ] Full CI pipeline validation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Issue Time Tracking
-------------------
Worklog Id: (was: 1013567)
Time Spent: 40m (was: 0.5h)
> Upgrade OGNL to version 3.5.x
> -----------------------------
>
> Key: WW-5326
> URL: https://issues.apache.org/jira/browse/WW-5326
> Project: Struts 2
> Issue Type: Dependency
> Reporter: Lukasz Lenart
> Priority: Major
> Fix For: 8.0.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> OGNL 3.5.x introduces a few major changes - the upgrade depends on this
> change in OGNL https://github.com/orphan-oss/ognl/pull/376
--
This message was sent by Atlassian Jira
(v8.20.10#820010)