Package org.apache.commons.io.input
Class ClassLoaderObjectInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.ObjectInputStream
-
- org.apache.commons.io.input.ClassLoaderObjectInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.DataInput
,java.io.ObjectInput
,java.io.ObjectStreamConstants
,java.lang.AutoCloseable
public class ClassLoaderObjectInputStream extends java.io.ObjectInputStream
A special ObjectInputStream that loads a class based on a specifiedClassLoader
rather than the system default.This is useful in dynamic container environments.
- Since:
- 1.1
-
-
Field Summary
-
Fields inherited from interface java.io.ObjectStreamConstants
baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, SERIAL_FILTER_PERMISSION, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
-
-
Constructor Summary
Constructors Constructor Description ClassLoaderObjectInputStream(java.lang.ClassLoader classLoader, java.io.InputStream inputStream)
Constructs a new ClassLoaderObjectInputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Class<?>
resolveClass(java.io.ObjectStreamClass objectStreamClass)
Resolve a class specified by the descriptor using the specified ClassLoader or the super ClassLoader.protected java.lang.Class<?>
resolveProxyClass(java.lang.String[] interfaces)
Create a proxy class that implements the specified interfaces using the specified ClassLoader or the super ClassLoader.-
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, getObjectInputFilter, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, setObjectInputFilter, skipBytes
-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
-
-
-
Constructor Detail
-
ClassLoaderObjectInputStream
public ClassLoaderObjectInputStream(java.lang.ClassLoader classLoader, java.io.InputStream inputStream) throws java.io.IOException, java.io.StreamCorruptedException
Constructs a new ClassLoaderObjectInputStream.- Parameters:
classLoader
- the ClassLoader from which classes should be loadedinputStream
- the InputStream to work on- Throws:
java.io.IOException
- in case of an I/O errorjava.io.StreamCorruptedException
- if the stream is corrupted
-
-
Method Detail
-
resolveClass
protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass objectStreamClass) throws java.io.IOException, java.lang.ClassNotFoundException
Resolve a class specified by the descriptor using the specified ClassLoader or the super ClassLoader.- Overrides:
resolveClass
in classjava.io.ObjectInputStream
- Parameters:
objectStreamClass
- descriptor of the class- Returns:
- the Class object described by the ObjectStreamClass
- Throws:
java.io.IOException
- in case of an I/O errorjava.lang.ClassNotFoundException
- if the Class cannot be found
-
resolveProxyClass
protected java.lang.Class<?> resolveProxyClass(java.lang.String[] interfaces) throws java.io.IOException, java.lang.ClassNotFoundException
Create a proxy class that implements the specified interfaces using the specified ClassLoader or the super ClassLoader.- Overrides:
resolveProxyClass
in classjava.io.ObjectInputStream
- Parameters:
interfaces
- the interfaces to implement- Returns:
- a proxy class implementing the interfaces
- Throws:
java.io.IOException
- in case of an I/O errorjava.lang.ClassNotFoundException
- if the Class cannot be found- Since:
- 2.1
- See Also:
ObjectInputStream.resolveProxyClass(java.lang.String[])
-
-