You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2026/08/27 05:24:23 UTC

(struts) 02/02: WW-5697 chore(ognl): deprecate DENY_INDEXED_ACCESS_EXECUTION

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

lukaszlenart pushed a commit to branch feature/WW-5697-indexed-access-fast-path
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 0360f733daad1694ed630c03ee2d3a9df585d680
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Thu Aug 27 07:23:16 2026 +0200

    WW-5697 chore(ognl): deprecate DENY_INDEXED_ACCESS_EXECUTION
    
    Nothing in the framework has ever written this key, so the check it guarded in
    XWorkMethodAccessor never fired. Now that indexed property access is identified
    from the target type rather than from a method name prefix, the flag has nothing
    left to guard.
    
    It is public API, so it is deprecated here rather than deleted, and removal is
    tracked for 8.0.0 in WW-5699.
    
    Co-Authored-By: Claude Opus 5 <no...@anthropic.com>
---
 .../org/apache/struts2/util/reflection/ReflectionContextState.java | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/core/src/main/java/org/apache/struts2/util/reflection/ReflectionContextState.java b/core/src/main/java/org/apache/struts2/util/reflection/ReflectionContextState.java
index cc2f457c3..aa387c62d 100644
--- a/core/src/main/java/org/apache/struts2/util/reflection/ReflectionContextState.java
+++ b/core/src/main/java/org/apache/struts2/util/reflection/ReflectionContextState.java
@@ -38,6 +38,13 @@ public class ReflectionContextState {
 	public static final String FULL_PROPERTY_PATH = "current.property.path"; // TODO: Probably a bug
 	public static final String CREATE_NULL_OBJECTS = "xwork.NullHandler.createNullObjects";
 	public static final String DENY_METHOD_EXECUTION = "xwork.MethodAccessor.denyMethodExecution";
+	/**
+	 * @deprecated since 7.4.0, no replacement. Nothing in the framework has ever set this key, so it has
+	 * never had any effect. Indexed property access is now identified by inspecting the target type rather
+	 * than by trusting a method name prefix, which leaves this flag with nothing to guard. Scheduled for
+	 * removal in 8.0.0 by WW-5699.
+	 */
+	@Deprecated
 	public static final String DENY_INDEXED_ACCESS_EXECUTION = "xwork.IndexedPropertyAccessor.denyMethodExecution";
 
     public static boolean isCreatingNullObjects(Map<String, Object> context) {