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

lukaszlenart pushed a commit to branch feat/ognl-3.5-upgrade
in repository https://gitbox.apache.org/repos/asf/struts.git

commit f7923fc704c51a293bf4ab2d0d8dd76becad29ed
Author: Lukasz Lenart <[email protected]>
AuthorDate: Mon Apr 6 18:31:58 2026 +0200

    WW-5326 refactor(ognl): parameterize all accessor implementations with 
StrutsContext
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 .../struts2/ognl/accessor/CompoundRootAccessor.java      | 16 ++++++++--------
 .../ognl/accessor/HttpParametersPropertyAccessor.java    |  8 ++++----
 .../org/apache/struts2/ognl/accessor/ObjectAccessor.java |  6 +++---
 .../ognl/accessor/ObjectProxyPropertyAccessor.java       | 16 +++++++++-------
 .../struts2/ognl/accessor/ParameterPropertyAccessor.java |  8 ++++----
 .../ognl/accessor/XWorkCollectionPropertyAccessor.java   | 14 +++++++-------
 .../struts2/ognl/accessor/XWorkEnumerationAccessor.java  |  8 ++++----
 .../ognl/accessor/XWorkIteratorPropertyAccessor.java     |  8 ++++----
 .../struts2/ognl/accessor/XWorkListPropertyAccessor.java | 12 ++++++------
 .../struts2/ognl/accessor/XWorkMapPropertyAccessor.java  | 12 ++++++------
 .../struts2/ognl/accessor/XWorkMethodAccessor.java       | 13 +++++++------
 .../ognl/accessor/XWorkObjectPropertyAccessor.java       |  6 +++---
 12 files changed, 65 insertions(+), 62 deletions(-)

diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/CompoundRootAccessor.java 
b/core/src/main/java/org/apache/struts2/ognl/accessor/CompoundRootAccessor.java
index 801be939b..4b7f90a7a 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/CompoundRootAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/CompoundRootAccessor.java
@@ -26,7 +26,6 @@ import org.apache.struts2.util.ValueStack;
 import ognl.MethodFailedException;
 import ognl.NoSuchPropertyException;
 import ognl.Ognl;
-import ognl.OgnlContext;
 import ognl.OgnlException;
 import ognl.OgnlRuntime;
 import org.apache.commons.lang3.BooleanUtils;
@@ -34,6 +33,7 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
+import org.apache.struts2.ognl.StrutsContext;
 
 import java.beans.IntrospectionException;
 import java.beans.PropertyDescriptor;
@@ -64,7 +64,7 @@ public class CompoundRootAccessor implements RootAccessor, 
InternalDestroyable {
      * Used by OGNl to generate bytecode
      */
     @Override
-    public String getSourceAccessor(OgnlContext context, Object target, Object 
index) {
+    public String getSourceAccessor(StrutsContext context, Object target, 
Object index) {
         return null;
     }
 
@@ -72,7 +72,7 @@ public class CompoundRootAccessor implements RootAccessor, 
InternalDestroyable {
      * Used by OGNl to generate bytecode
      */
     @Override
-    public String getSourceSetter(OgnlContext context, Object target, Object 
index) {
+    public String getSourceSetter(StrutsContext context, Object target, Object 
index) {
         return null;
     }
 
@@ -96,7 +96,7 @@ public class CompoundRootAccessor implements RootAccessor, 
InternalDestroyable {
     }
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object name, 
Object value) throws OgnlException {
+    public void setProperty(StrutsContext context, Object target, Object name, 
Object value) throws OgnlException {
         CompoundRoot root = (CompoundRoot) target;
         
         for (Object o : root) {
@@ -138,7 +138,7 @@ public class CompoundRootAccessor implements RootAccessor, 
InternalDestroyable {
     }
 
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object name) 
throws OgnlException {
+    public Object getProperty(StrutsContext context, Object target, Object 
name) throws OgnlException {
         CompoundRoot root = (CompoundRoot) target;
 
         if (name instanceof Integer index) {
@@ -182,7 +182,7 @@ public class CompoundRootAccessor implements RootAccessor, 
InternalDestroyable {
     }
 
     @Override
-    public Object callMethod(OgnlContext context, Object target, String name, 
Object[] objects) throws MethodFailedException {
+    public Object callMethod(StrutsContext context, Object target, String 
name, Object[] objects) throws MethodFailedException {
         CompoundRoot root = (CompoundRoot) target;
 
         if ("describe".equals(name)) {
@@ -270,12 +270,12 @@ public class CompoundRootAccessor implements 
RootAccessor, InternalDestroyable {
     }
 
     @Override
-    public Object callStaticMethod(OgnlContext transientVars, Class aClass, 
String s, Object[] objects) throws MethodFailedException {
+    public Object callStaticMethod(StrutsContext transientVars, Class aClass, 
String s, Object[] objects) throws MethodFailedException {
         return null;
     }
 
     @Override
-    public Class classForName(String className, OgnlContext context) throws 
ClassNotFoundException {
+    public Class classForName(String className, StrutsContext context) throws 
ClassNotFoundException {
         Object root = Ognl.getRoot(context);
 
         if (disallowCustomOgnlMap) {
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/HttpParametersPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/HttpParametersPropertyAccessor.java
index 53191030c..1a092325c 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/HttpParametersPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/HttpParametersPropertyAccessor.java
@@ -19,20 +19,20 @@
 package org.apache.struts2.ognl.accessor;
 
 import ognl.ObjectPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
 import org.apache.struts2.dispatcher.HttpParameters;
+import org.apache.struts2.ognl.StrutsContext;
 
-public class HttpParametersPropertyAccessor extends ObjectPropertyAccessor {
+public class HttpParametersPropertyAccessor extends 
ObjectPropertyAccessor<StrutsContext> {
 
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object 
oname) throws OgnlException {
+    public Object getProperty(StrutsContext context, Object target, Object 
oname) throws OgnlException {
         HttpParameters parameters = (HttpParameters) target;
         return parameters.get(String.valueOf(oname)).getObject();
     }
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object oname, 
Object value) throws OgnlException {
+    public void setProperty(StrutsContext context, Object target, Object 
oname, Object value) throws OgnlException {
         throw new OgnlException("Access to " + target.getClass().getName() + " 
is read-only!");
     }
 }
\ No newline at end of file
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectAccessor.java 
b/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectAccessor.java
index 20973b577..513cb9f48 100644
--- a/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectAccessor.java
+++ b/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectAccessor.java
@@ -21,12 +21,12 @@ package org.apache.struts2.ognl.accessor;
 import org.apache.struts2.conversion.impl.XWorkConverter;
 import org.apache.struts2.util.reflection.ReflectionContextState;
 import ognl.ObjectPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
+import org.apache.struts2.ognl.StrutsContext;
 
-public class ObjectAccessor extends ObjectPropertyAccessor {
+public class ObjectAccessor extends ObjectPropertyAccessor<StrutsContext> {
     @Override
-    public Object getProperty(OgnlContext map, Object o, Object o1) throws 
OgnlException {
+    public Object getProperty(StrutsContext map, Object o, Object o1) throws 
OgnlException {
         Object obj = super.getProperty(map, o, o1);
 
         map.put(XWorkConverter.LAST_BEAN_CLASS_ACCESSED, o.getClass());
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectProxyPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectProxyPropertyAccessor.java
index a8aec7305..4f0230426 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectProxyPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/ObjectProxyPropertyAccessor.java
@@ -20,10 +20,10 @@ package org.apache.struts2.ognl.accessor;
 
 import org.apache.struts2.ognl.ObjectProxy;
 import org.apache.struts2.util.reflection.ReflectionContextState;
-import ognl.OgnlContext;
 import ognl.OgnlException;
 import ognl.OgnlRuntime;
 import ognl.PropertyAccessor;
+import org.apache.struts2.ognl.StrutsContext;
 
 /**
  * Is able to access (set/get) properties on a given object.
@@ -33,13 +33,13 @@ import ognl.PropertyAccessor;
  *
  * @author Gabe
  */
-public class ObjectProxyPropertyAccessor implements PropertyAccessor {
+public class ObjectProxyPropertyAccessor implements 
PropertyAccessor<StrutsContext> {
 
     /**
      * Used by OGNl to generate bytecode
      */
     @Override
-    public String getSourceAccessor(OgnlContext context, Object target, Object 
index) {
+    public String getSourceAccessor(StrutsContext context, Object target, 
Object index) {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
@@ -47,12 +47,13 @@ public class ObjectProxyPropertyAccessor implements 
PropertyAccessor {
      * Used by OGNl to generate bytecode
      */
     @Override
-    public String getSourceSetter(OgnlContext context, Object target, Object 
index) {
+    public String getSourceSetter(StrutsContext context, Object target, Object 
index) {
         return null;
     }
 
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object name) 
throws OgnlException {
+    @SuppressWarnings("unchecked")
+    public Object getProperty(StrutsContext context, Object target, Object 
name) throws OgnlException {
         ObjectProxy proxy = (ObjectProxy) target;
         setupContext(context, proxy);
 
@@ -61,7 +62,8 @@ public class ObjectProxyPropertyAccessor implements 
PropertyAccessor {
     }
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object name, 
Object value) throws OgnlException {
+    @SuppressWarnings("unchecked")
+    public void setProperty(StrutsContext context, Object target, Object name, 
Object value) throws OgnlException {
         ObjectProxy proxy = (ObjectProxy) target;
         setupContext(context, proxy);
 
@@ -75,7 +77,7 @@ public class ObjectProxyPropertyAccessor implements 
PropertyAccessor {
      * @param context
      * @param proxy
      */
-    private void setupContext(OgnlContext context, ObjectProxy proxy) {
+    private void setupContext(StrutsContext context, ObjectProxy proxy) {
         ReflectionContextState.setLastBeanClassAccessed(context, 
proxy.getLastClassAccessed());
         ReflectionContextState.setLastBeanPropertyAccessed(context, 
proxy.getLastPropertyAccessed());
     }
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/ParameterPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/ParameterPropertyAccessor.java
index cb402304a..2745b779c 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/ParameterPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/ParameterPropertyAccessor.java
@@ -19,14 +19,14 @@
 package org.apache.struts2.ognl.accessor;
 
 import ognl.ObjectPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
 import org.apache.struts2.dispatcher.Parameter;
+import org.apache.struts2.ognl.StrutsContext;
 
-public class ParameterPropertyAccessor extends ObjectPropertyAccessor {
+public class ParameterPropertyAccessor extends 
ObjectPropertyAccessor<StrutsContext> {
 
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object 
oname) throws OgnlException {
+    public Object getProperty(StrutsContext context, Object target, Object 
oname) throws OgnlException {
         if (target instanceof Parameter parameter) {
             if ("value".equalsIgnoreCase(String.valueOf(oname))) {
                 throw new OgnlException("Access to " + oname + " is not 
allowed! Call parameter name directly!");
@@ -37,7 +37,7 @@ public class ParameterPropertyAccessor extends 
ObjectPropertyAccessor {
     }
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object oname, 
Object value) throws OgnlException {
+    public void setProperty(StrutsContext context, Object target, Object 
oname, Object value) throws OgnlException {
         if (target instanceof Parameter) {
             throw new OgnlException("Access to " + target.getClass().getName() 
+ " is read-only!");
         } else {
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkCollectionPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkCollectionPropertyAccessor.java
index d9979b8f5..07460a3f2 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkCollectionPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkCollectionPropertyAccessor.java
@@ -25,10 +25,10 @@ import org.apache.struts2.inject.Inject;
 import org.apache.struts2.ognl.OgnlUtil;
 import org.apache.struts2.util.reflection.ReflectionContextState;
 import ognl.ObjectPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
 import ognl.OgnlRuntime;
 import ognl.SetPropertyAccessor;
+import org.apache.struts2.ognl.StrutsContext;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -40,7 +40,7 @@ import java.util.Map;
 /**
  * @author Gabe
  */
-public class XWorkCollectionPropertyAccessor extends SetPropertyAccessor {
+public class XWorkCollectionPropertyAccessor extends 
SetPropertyAccessor<StrutsContext> {
 
     private static final Logger LOG = 
LogManager.getLogger(XWorkCollectionPropertyAccessor.class);
 
@@ -87,7 +87,7 @@ public class XWorkCollectionPropertyAccessor extends 
SetPropertyAccessor {
      * @see ognl.PropertyAccessor#getProperty(java.util.Map, Object, Object)
      */
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object key) 
throws OgnlException {
+    public Object getProperty(StrutsContext context, Object target, Object 
key) throws OgnlException {
         LOG.trace("Entering getProperty()");
 
         //check if it is a generic type property.
@@ -186,7 +186,7 @@ public class XWorkCollectionPropertyAccessor extends 
SetPropertyAccessor {
      * Gets an indexed Map by a given key property with the key being
      * the value of the property and the value being the
      */
-    private Map getSetMap(OgnlContext context, Collection collection, String 
property) throws OgnlException {
+    private Map getSetMap(StrutsContext context, Collection collection, String 
property) throws OgnlException {
         LOG.trace("getting set Map");
 
         String path = ReflectionContextState.getCurrentPropertyPath(context);
@@ -211,7 +211,7 @@ public class XWorkCollectionPropertyAccessor extends 
SetPropertyAccessor {
     /*
      * gets a bean with the given
      */
-    public Object getPropertyThroughIteration(OgnlContext context, Collection 
collection, String property, Object key)
+    public Object getPropertyThroughIteration(StrutsContext context, 
Collection collection, String property, Object key)
             throws OgnlException {
         //TODO
         for (Object currTest : collection) {
@@ -224,7 +224,7 @@ public class XWorkCollectionPropertyAccessor extends 
SetPropertyAccessor {
     }
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object name, 
Object value) throws OgnlException {
+    public void setProperty(StrutsContext context, Object target, Object name, 
Object value) throws OgnlException {
         Class lastClass = (Class) 
context.get(XWorkConverter.LAST_BEAN_CLASS_ACCESSED);
         String lastProperty = (String) 
context.get(XWorkConverter.LAST_BEAN_PROPERTY_ACCESSED);
         Class convertToClass = objectTypeDeterminer.getElementClass(lastClass, 
lastProperty, name);
@@ -256,7 +256,7 @@ public class XWorkCollectionPropertyAccessor extends 
SetPropertyAccessor {
         super.setProperty(context, target, name, realValue);
     }
 
-    private Object getRealValue(OgnlContext context, Object value, Class 
convertToClass) {
+    private Object getRealValue(StrutsContext context, Object value, Class 
convertToClass) {
         if (value == null || convertToClass == null) {
             return value;
         }
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkEnumerationAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkEnumerationAccessor.java
index df54e49b8..780f27903 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkEnumerationAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkEnumerationAccessor.java
@@ -20,15 +20,15 @@ package org.apache.struts2.ognl.accessor;
 
 import ognl.EnumerationPropertyAccessor;
 import ognl.ObjectPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
+import org.apache.struts2.ognl.StrutsContext;
 
-public class XWorkEnumerationAccessor extends EnumerationPropertyAccessor {
+public class XWorkEnumerationAccessor extends 
EnumerationPropertyAccessor<StrutsContext> {
 
-    private final ObjectPropertyAccessor opa = new ObjectPropertyAccessor();
+    private final ObjectPropertyAccessor<StrutsContext> opa = new 
ObjectPropertyAccessor<>();
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object name, 
Object value) throws OgnlException {
+    public void setProperty(StrutsContext context, Object target, Object name, 
Object value) throws OgnlException {
         opa.setProperty(context, target, name, value);
     }
 }
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkIteratorPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkIteratorPropertyAccessor.java
index daa17740e..9884dba01 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkIteratorPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkIteratorPropertyAccessor.java
@@ -20,15 +20,15 @@ package org.apache.struts2.ognl.accessor;
 
 import ognl.IteratorPropertyAccessor;
 import ognl.ObjectPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
+import org.apache.struts2.ognl.StrutsContext;
 
-public class XWorkIteratorPropertyAccessor extends IteratorPropertyAccessor {
+public class XWorkIteratorPropertyAccessor extends 
IteratorPropertyAccessor<StrutsContext> {
 
-    private final ObjectPropertyAccessor opa = new ObjectPropertyAccessor();
+    private final ObjectPropertyAccessor<StrutsContext> opa = new 
ObjectPropertyAccessor<>();
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object name, 
Object value) throws OgnlException {
+    public void setProperty(StrutsContext context, Object target, Object name, 
Object value) throws OgnlException {
         opa.setProperty(context, target, name, value);
     }
 }
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkListPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkListPropertyAccessor.java
index e741877cb..31d70c6ff 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkListPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkListPropertyAccessor.java
@@ -25,9 +25,9 @@ import org.apache.struts2.inject.Inject;
 import org.apache.struts2.ognl.OgnlUtil;
 import org.apache.struts2.util.reflection.ReflectionContextState;
 import ognl.ListPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
 import ognl.PropertyAccessor;
+import org.apache.struts2.ognl.StrutsContext;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
 
@@ -41,7 +41,7 @@ import java.util.List;
  *
  * @author Gabriel Zimmerman
  */
-public class XWorkListPropertyAccessor extends ListPropertyAccessor {
+public class XWorkListPropertyAccessor extends 
ListPropertyAccessor<StrutsContext> {
 
     private XWorkCollectionPropertyAccessor _sAcc = new 
XWorkCollectionPropertyAccessor();
 
@@ -57,7 +57,7 @@ public class XWorkListPropertyAccessor extends 
ListPropertyAccessor {
     }
 
     @Inject("java.util.Collection")
-    public void setXWorkCollectionPropertyAccessor(PropertyAccessor acc) {
+    public void 
setXWorkCollectionPropertyAccessor(PropertyAccessor<StrutsContext> acc) {
         this._sAcc = (XWorkCollectionPropertyAccessor) acc;
     }
 
@@ -82,7 +82,7 @@ public class XWorkListPropertyAccessor extends 
ListPropertyAccessor {
     }
 
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object name) 
throws OgnlException {
+    public Object getProperty(StrutsContext context, Object target, Object 
name) throws OgnlException {
 
         if (ReflectionContextState.isGettingByKeyProperty(context)
                 || 
name.equals(XWorkCollectionPropertyAccessor.KEY_PROPERTY_FOR_CREATION)) {
@@ -137,7 +137,7 @@ public class XWorkListPropertyAccessor extends 
ListPropertyAccessor {
     }
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object name, 
Object value)
+    public void setProperty(StrutsContext context, Object target, Object name, 
Object value)
             throws OgnlException {
 
         Class lastClass = (Class) 
context.get(XWorkConverter.LAST_BEAN_CLASS_ACCESSED);
@@ -185,7 +185,7 @@ public class XWorkListPropertyAccessor extends 
ListPropertyAccessor {
         super.setProperty(context, target, name, realValue);
     }
 
-    private Object getRealValue(OgnlContext context, Object value, Class 
convertToClass) {
+    private Object getRealValue(StrutsContext context, Object value, Class 
convertToClass) {
         if (value == null || convertToClass == null) {
             return value;
         }
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMapPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMapPropertyAccessor.java
index f15223fdf..70adb314b 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMapPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMapPropertyAccessor.java
@@ -24,8 +24,8 @@ import org.apache.struts2.conversion.impl.XWorkConverter;
 import org.apache.struts2.inject.Inject;
 import org.apache.struts2.util.reflection.ReflectionContextState;
 import ognl.MapPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
+import org.apache.struts2.ognl.StrutsContext;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -37,7 +37,7 @@ import java.util.Map;
  *
  * @author Gabriel Zimmerman
  */
-public class XWorkMapPropertyAccessor extends MapPropertyAccessor {
+public class XWorkMapPropertyAccessor extends 
MapPropertyAccessor<StrutsContext> {
 
     private static final Logger LOG = 
LogManager.getLogger(XWorkMapPropertyAccessor.class);
 
@@ -63,7 +63,7 @@ public class XWorkMapPropertyAccessor extends 
MapPropertyAccessor {
     }
 
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object name) 
throws OgnlException {
+    public Object getProperty(StrutsContext context, Object target, Object 
name) throws OgnlException {
         LOG.trace("Entering getProperty ({},{},{})", context, target, name);
 
         ReflectionContextState.updateCurrentPropertyPath(context, name);
@@ -123,7 +123,7 @@ public class XWorkMapPropertyAccessor extends 
MapPropertyAccessor {
     }
 
     @Override
-    public void setProperty(OgnlContext context, Object target, Object name, 
Object value) throws OgnlException {
+    public void setProperty(StrutsContext context, Object target, Object name, 
Object value) throws OgnlException {
         LOG.trace("Entering setProperty({},{},{},{})", context, target, name, 
value);
 
         Object key = getKey(context, name);
@@ -131,7 +131,7 @@ public class XWorkMapPropertyAccessor extends 
MapPropertyAccessor {
         map.put(key, getValue(context, value));
     }
 
-    private Object getValue(OgnlContext context, Object value) {
+    private Object getValue(StrutsContext context, Object value) {
         Class lastClass = (Class) 
context.get(XWorkConverter.LAST_BEAN_CLASS_ACCESSED);
         String lastProperty = (String) 
context.get(XWorkConverter.LAST_BEAN_PROPERTY_ACCESSED);
         if (lastClass == null || lastProperty == null) {
@@ -144,7 +144,7 @@ public class XWorkMapPropertyAccessor extends 
MapPropertyAccessor {
         return xworkConverter.convertValue(context, value, elementClass);
     }
 
-    private Object getKey(OgnlContext context, Object name) {
+    private Object getKey(StrutsContext context, Object name) {
         Class lastClass = (Class) 
context.get(XWorkConverter.LAST_BEAN_CLASS_ACCESSED);
         String lastProperty = (String) 
context.get(XWorkConverter.LAST_BEAN_PROPERTY_ACCESSED);
         if (lastClass == null || lastProperty == null) {
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMethodAccessor.java 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMethodAccessor.java
index 025553997..2bc035c30 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMethodAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkMethodAccessor.java
@@ -21,9 +21,9 @@ package org.apache.struts2.ognl.accessor;
 import org.apache.struts2.util.reflection.ReflectionContextState;
 import ognl.MethodFailedException;
 import ognl.ObjectMethodAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlRuntime;
 import ognl.PropertyAccessor;
+import org.apache.struts2.ognl.StrutsContext;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -38,12 +38,13 @@ import java.util.Collection;
  * @author Patrick Lightbody
  * @author tmjee
  */
-public class XWorkMethodAccessor extends ObjectMethodAccessor {
+public class XWorkMethodAccessor extends ObjectMethodAccessor<StrutsContext> {
 
     private static final Logger LOG = 
LogManager.getLogger(XWorkMethodAccessor.class);
 
     @Override
-    public Object callMethod(OgnlContext context, Object object, String 
string, Object[] objects) throws MethodFailedException {
+    @SuppressWarnings("unchecked")
+    public Object callMethod(StrutsContext context, Object object, String 
string, Object[] objects) throws MethodFailedException {
 
         //Collection property accessing
         //this if statement ensures that ognl
@@ -94,7 +95,7 @@ public class XWorkMethodAccessor extends ObjectMethodAccessor 
{
         }
     }
 
-    private Object callMethodWithDebugInfo(OgnlContext context, Object object, 
String methodName, Object[] objects) throws MethodFailedException {
+    private Object callMethodWithDebugInfo(StrutsContext context, Object 
object, String methodName, Object[] objects) throws MethodFailedException {
         try {
             return super.callMethod(context, object, methodName, objects);
         } catch (MethodFailedException e) {
@@ -109,7 +110,7 @@ public class XWorkMethodAccessor extends 
ObjectMethodAccessor {
     }
 
     @Override
-    public Object callStaticMethod(OgnlContext context, Class aClass, String 
string, Object[] objects) throws MethodFailedException {
+    public Object callStaticMethod(StrutsContext context, Class aClass, String 
string, Object[] objects) throws MethodFailedException {
         boolean e = ReflectionContextState.isDenyMethodExecution(context);
 
         if (!e) {
@@ -119,7 +120,7 @@ public class XWorkMethodAccessor extends 
ObjectMethodAccessor {
         }
     }
 
-    private Object callStaticMethodWithDebugInfo(OgnlContext context, Class 
aClass, String methodName,
+    private Object callStaticMethodWithDebugInfo(StrutsContext context, Class 
aClass, String methodName,
                                                  Object[] objects) throws 
MethodFailedException {
         try {
             return super.callStaticMethod(context, aClass, methodName, 
objects);
diff --git 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkObjectPropertyAccessor.java
 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkObjectPropertyAccessor.java
index c518d42cc..214052487 100644
--- 
a/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkObjectPropertyAccessor.java
+++ 
b/core/src/main/java/org/apache/struts2/ognl/accessor/XWorkObjectPropertyAccessor.java
@@ -21,15 +21,15 @@ package org.apache.struts2.ognl.accessor;
 import org.apache.struts2.conversion.impl.XWorkConverter;
 import org.apache.struts2.util.reflection.ReflectionContextState;
 import ognl.ObjectPropertyAccessor;
-import ognl.OgnlContext;
 import ognl.OgnlException;
+import org.apache.struts2.ognl.StrutsContext;
 
 /**
  * @author Gabe
  */
-public class XWorkObjectPropertyAccessor extends ObjectPropertyAccessor {
+public class XWorkObjectPropertyAccessor extends 
ObjectPropertyAccessor<StrutsContext> {
     @Override
-    public Object getProperty(OgnlContext context, Object target, Object 
oname) throws OgnlException {
+    public Object getProperty(StrutsContext context, Object target, Object 
oname) throws OgnlException {
         //set the last set objects in the context
         //so if the next objects accessed are
         //Maps or Collections they can use the information

Reply via email to