Class InstantiateFactory

java.lang.Object
org.apache.commons.collections.functors.InstantiateFactory
All Implemented Interfaces:
Serializable, Factory

public class InstantiateFactory extends Object implements Factory, Serializable
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 Details

    • serialVersionUID

      private static final long serialVersionUID
      The serial version
      See Also:
    • iClassToInstantiate

      private final Class iClassToInstantiate
      The class to create
    • iParamTypes

      private final Class[] iParamTypes
      The constructor parameter types
    • iArgs

      private final Object[] iArgs
      The constructor arguments
    • iConstructor

      private transient Constructor iConstructor
      The constructor
  • Constructor Details

    • InstantiateFactory

      public InstantiateFactory(Class classToInstantiate)
      Constructor that performs no validation. Use getInstance if you want that.
      Parameters:
      classToInstantiate - the class to instantiate
    • InstantiateFactory

      public InstantiateFactory(Class classToInstantiate, Class[] paramTypes, Object[] args)
      Constructor that performs no validation. Use getInstance if you want that.
      Parameters:
      classToInstantiate - the class to instantiate
      paramTypes - the constructor parameter types, not cloned
      args - the constructor arguments, not cloned
  • Method Details

    • getInstance

      public static Factory getInstance(Class classToInstantiate, Class[] paramTypes, Object[] args)
      Factory method that performs validation.
      Parameters:
      classToInstantiate - the class to instantiate, not null
      paramTypes - the constructor parameter types
      args - the constructor arguments
      Returns:
      a new instantiate factory
    • findConstructor

      private void findConstructor()
      Find the Constructor for the class specified.
    • create

      public Object create()
      Creates an object using the stored constructor.
      Specified by:
      create in interface Factory
      Returns:
      the new object
    • writeObject

      private void writeObject(ObjectOutputStream os) throws IOException
      Overrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).
      Throws:
      IOException
    • readObject

      private void readObject(ObjectInputStream is) throws ClassNotFoundException, IOException
      Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).
      Throws:
      ClassNotFoundException
      IOException