org.springframework.core
Class ConfigurableObjectInputStream
java.lang.Object
java.io.InputStream
java.io.ObjectInputStream
org.springframework.core.ConfigurableObjectInputStream
- All Implemented Interfaces:
- Closeable, DataInput, ObjectInput, ObjectStreamConstants
- Direct Known Subclasses:
- CodebaseAwareObjectInputStream
public class ConfigurableObjectInputStream
- extends ObjectInputStream
Special ObjectInputStream subclass that resolves class names
against a specific ClassLoader. Serves as base class for
CodebaseAwareObjectInputStream
.
- Since:
- 2.5.5
- Author:
- Juergen Hoeller
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, 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 |
Methods inherited from class java.io.ObjectInputStream |
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ConfigurableObjectInputStream
public ConfigurableObjectInputStream(InputStream in,
ClassLoader classLoader)
throws IOException
- Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.
- Parameters:
in
- the InputStream to read fromclassLoader
- the ClassLoader to use for loading local classes
- Throws:
IOException
- See Also:
ObjectInputStream.ObjectInputStream(java.io.InputStream)
ConfigurableObjectInputStream
public ConfigurableObjectInputStream(InputStream in,
ClassLoader classLoader,
boolean acceptProxyClasses)
throws IOException
- Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.
- Parameters:
in
- the InputStream to read fromclassLoader
- the ClassLoader to use for loading local classesacceptProxyClasses
- whether to accept deserialization of proxy classes
(may be deactivated as a security measure)
- Throws:
IOException
- See Also:
ObjectInputStream.ObjectInputStream(java.io.InputStream)
resolveClass
protected Class resolveClass(ObjectStreamClass classDesc)
throws IOException,
ClassNotFoundException
- Overrides:
resolveClass
in class ObjectInputStream
- Throws:
IOException
ClassNotFoundException
resolveProxyClass
protected Class resolveProxyClass(String[] interfaces)
throws IOException,
ClassNotFoundException
- Overrides:
resolveProxyClass
in class ObjectInputStream
- Throws:
IOException
ClassNotFoundException
resolveFallbackIfPossible
protected Class resolveFallbackIfPossible(String className,
ClassNotFoundException ex)
throws IOException,
ClassNotFoundException
- Resolve the given class name against a fallback class loader.
The default implementation simply rethrows the original exception,
since there is no fallback available.
- Parameters:
className
- the class name to resolveex
- the original exception thrown when attempting to load the class
- Returns:
- the newly resolved class (never
null
)
- Throws:
IOException
ClassNotFoundException
getFallbackClassLoader
protected ClassLoader getFallbackClassLoader()
throws IOException
- Return the fallback ClassLoader to use when no ClassLoader was specified
and ObjectInputStream's own default ClassLoader failed.
The default implementation simply returns null
.
- Throws:
IOException