Class InstantiateFactory
java.lang.Object
org.apache.commons.collections.functors.InstantiateFactory
- All Implemented Interfaces:
Serializable,Factory
Factory 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 InstantiateTransformer
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
FieldsModifier and TypeFieldDescriptionprivate final Object[]The constructor argumentsprivate final ClassThe class to createprivate ConstructorThe constructorprivate final Class[]The constructor parameter typesprivate static final longThe serial version -
Constructor Summary
ConstructorsConstructorDescriptionInstantiateFactory(Class classToInstantiate) Constructor that performs no validation.InstantiateFactory(Class classToInstantiate, Class[] paramTypes, Object[] args) Constructor that performs no validation. -
Method Summary
Modifier and TypeMethodDescriptioncreate()Creates an object using the stored constructor.private voidFind the Constructor for the class specified.static FactorygetInstance(Class classToInstantiate, Class[] paramTypes, Object[] args) Factory method that performs validation.private voidOverrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).private voidOverrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDThe serial version- See Also:
-
iClassToInstantiate
The class to create -
iParamTypes
The constructor parameter types -
iArgs
The constructor arguments -
iConstructor
The constructor
-
-
Constructor Details
-
InstantiateFactory
Constructor that performs no validation. UsegetInstanceif you want that.- Parameters:
classToInstantiate- the class to instantiate
-
InstantiateFactory
Constructor that performs no validation. UsegetInstanceif you want that.- Parameters:
classToInstantiate- the class to instantiateparamTypes- the constructor parameter types, not clonedargs- the constructor arguments, not cloned
-
-
Method Details
-
getInstance
Factory method that performs validation.- Parameters:
classToInstantiate- the class to instantiate, not nullparamTypes- the constructor parameter typesargs- the constructor arguments- Returns:
- a new instantiate factory
-
findConstructor
private void findConstructor()Find the Constructor for the class specified. -
create
Creates an object using the stored constructor. -
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:
ClassNotFoundExceptionIOException
-