Class InvokerTransformer
java.lang.Object
org.apache.commons.collections.functors.InvokerTransformer
- All Implemented Interfaces:
Serializable
,Transformer
Transformer implementation that creates a new object instance by reflection.
WARNING: from v3.2.2 onwards this class will throw an
UnsupportedOperationException
when trying to serialize or
de-serialize an instance to prevent potential remote code execution exploits.
In order to re-enable serialization support for InvokerTransformer
the following system property can be used (via -Dproperty=true):
org.apache.commons.collections.enableUnsafeSerialization
- Since:
- Commons Collections 3.0
- Version:
- $Revision: 1713845 $ $Date: 2015-11-11 15:02:16 +0100 (Wed, 11 Nov 2015) $
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
InvokerTransformer
(String methodName) Constructor for no arg instance.InvokerTransformer
(String methodName, Class[] paramTypes, Object[] args) Constructor that performs no validation. -
Method Summary
Modifier and TypeMethodDescriptionstatic Transformer
getInstance
(String methodName) Gets an instance of this transformer calling a specific method with no arguments.static Transformer
getInstance
(String methodName, Class[] paramTypes, Object[] args) Gets an instance of this transformer calling a specific method with specific values.private void
Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).Transforms the input to result by invoking a method on the input.private void
Overrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDThe serial version- See Also:
-
iMethodName
The method name to call -
iParamTypes
The array of reflection parameter types -
iArgs
The array of reflection arguments
-
-
Constructor Details
-
InvokerTransformer
Constructor for no arg instance.- Parameters:
methodName
- the method to call
-
InvokerTransformer
Constructor that performs no validation. UsegetInstance
if you want that.- Parameters:
methodName
- the method to callparamTypes
- the constructor parameter types, not clonedargs
- the constructor arguments, not cloned
-
-
Method Details
-
getInstance
Gets an instance of this transformer calling a specific method with no arguments.- Parameters:
methodName
- the method name to call- Returns:
- an invoker transformer
- Since:
- Commons Collections 3.1
-
getInstance
Gets an instance of this transformer calling a specific method with specific values.- Parameters:
methodName
- the method name to callparamTypes
- the parameter types of the methodargs
- the arguments to pass to the method- Returns:
- an invoker transformer
-
transform
Transforms the input to result by invoking a method on the input.- Specified by:
transform
in interfaceTransformer
- Parameters:
input
- the input object to transform- Returns:
- the transformed result, null if null input
-
writeObject
Overrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).- Throws:
IOException
-
readObject
Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).- Throws:
ClassNotFoundException
IOException
-