[ 
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)

Reply via email to