ObjectInputStream subclass that resolves class names
against a specific ClassLoader.
org.springframework.core.serializer.DefaultDeserializer
| Modifier and Type | Field and Description |
|---|---|
| private final boolean | |
| private final ClassLoader |
| Access | Constructor and Description |
|---|---|
| public | ConfigurableObjectInputStream(InputStream
the InputStream to read from in, ClassLoader the ClassLoader to use for loading local classes classLoader)Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader. |
| public | ConfigurableObjectInputStream(InputStream
the InputStream to read from in, ClassLoader the ClassLoader to use for loading local classes classLoader, boolean whether to accept deserialization of proxy classes
(may be deactivated as a security measure) acceptProxyClasses)Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader. |
| Modifier and Type | Method and Description |
|---|---|
| protected ClassLoader | getFallbackClassLoader()
Return the fallback ClassLoader to use when no ClassLoader was specified and ObjectInputStream's own default class loader failed. |
| protected Class | resolveClass(ObjectStreamClass
an instance of class classDesc)ObjectStreamClassOverrides java. Load the local class equivalent of the specified stream class description. |
| protected Class | Returns: the newly resolved class (nevernull)the class name to resolve className, ClassNotFoundException the original exception thrown when attempting to load the class ex)Resolve the given class name against a fallback class loader. |
| protected Class | resolveProxyClass(String[]
the list of interface names that were
deserialized in the proxy class descriptor interfaces)Overrides java. Returns a proxy class that implements the interfaces named in a proxy class descriptor; subclasses may implement this method to read custom data from the stream along with the descriptors for dynamic proxy classes, allowing them to use an alternate loading mechanism for the interfaces and the proxy class. |
| acceptProxyClasses | back to summary |
|---|---|
| private final boolean acceptProxyClasses | |
| classLoader | back to summary |
|---|---|
| private final ClassLoader classLoader
| |
| ConfigurableObjectInputStream | back to summary |
|---|---|
| public ConfigurableObjectInputStream(InputStream in, ClassLoader classLoader) throws IOException Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.
| |
| ConfigurableObjectInputStream | back to summary |
|---|---|
| public ConfigurableObjectInputStream(InputStream in, ClassLoader classLoader, boolean acceptProxyClasses) throws IOException Create a new ConfigurableObjectInputStream for the given InputStream and ClassLoader.
| |
| getFallbackClassLoader | back to summary |
|---|---|
| protected ClassLoader getFallbackClassLoader() throws IOException Return the fallback ClassLoader to use when no ClassLoader was specified and ObjectInputStream's own default class loader failed. The default implementation simply returns
| |
| resolveClass | back to summary |
|---|---|
| protected Class Overrides java. Doc from java. Load the local class equivalent of the specified stream class description. Subclasses may implement this method to allow classes to be fetched from an alternate source. The corresponding method in The default implementation of this method in
Class.forName(desc.getName(), false, loader) loader is the first class loader on the current
thread's stack (starting from the currently executing method) that is
neither the platform
class loader nor its ancestor; otherwise, loader is the
platform class loader. If this call results in a
ClassNotFoundException and the name of the passed
ObjectStreamClass instance is the Java language keyword
for a primitive type or void, then the Class object
representing that primitive type or void will be returned
(e.g., an ObjectStreamClass with the name
"int" will be resolved to Integer.TYPE).
Otherwise, the ClassNotFoundException will be thrown to
the caller of this method.
| |
| resolveFallbackIfPossible | back to summary |
|---|---|
| protected Class Resolve the given class name against a fallback class loader. The default implementation simply rethrows the original exception, since there is no fallback available.
| |
| resolveProxyClass | back to summary |
|---|---|
| protected Class Overrides java. Doc from java. Returns a proxy class that implements the interfaces named in a proxy class descriptor; subclasses may implement this method to read custom data from the stream along with the descriptors for dynamic proxy classes, allowing them to use an alternate loading mechanism for the interfaces and the proxy class. This method is called exactly once for each unique proxy class descriptor in the stream. The corresponding method in The default implementation of this method in
Class.forName(i, false, loader) loader is the first class loader on the current
thread's stack (starting from the currently executing method) that is
neither the platform
class loader nor its ancestor; otherwise, loader is the
platform class loader.
Unless any of the resolved interfaces are non-public, this same value
of loader is also the class loader passed to
Proxy.getProxyClass; if non-public interfaces are present,
their class loader is passed instead (if more than one non-public
interface class loader is encountered, an
IllegalAccessError is thrown).
If Proxy.getProxyClass throws an
IllegalArgumentException, resolveProxyClass
will throw a ClassNotFoundException containing the
IllegalArgumentException.
| |