public final class ReplicationStream extends ObjectInputStream
ObjectInputStream
that loads from the
class loader for this web application. This allows classes defined only
with the web application to be found correctly.ObjectInputStream.GetField
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
Constructor and Description |
---|
ReplicationStream(InputStream stream,
ClassLoader[] classLoaders)
Construct a new instance of CustomObjectInputStream
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
Class<?> |
findExternalClass(String name) |
Class<?> |
findReplicationClass(String name) |
Class<?> |
resolveClass(ObjectStreamClass classDesc)
Load the local class equivalent of the specified stream class
description, by using the class loader assigned to this Context.
|
Class<?> |
resolveClass(String name) |
protected Class<?> |
resolveProxyClass(String[] interfaces)
ObjectInputStream.resolveProxyClass has some funky way of using
the incorrect class loader to resolve proxy classes, let's do it our way instead
|
available, 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
mark, markSupported, read, reset, skip
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
read, skip
public ReplicationStream(InputStream stream, ClassLoader[] classLoaders) throws IOException
stream
- The input stream we will read fromclassLoaders
- The class loader array used to instantiate objectsIOException
- if an input/output error occurspublic Class<?> resolveClass(ObjectStreamClass classDesc) throws ClassNotFoundException, IOException
resolveClass
in class ObjectInputStream
classDesc
- Class description from the input streamClassNotFoundException
- if this class cannot be foundIOException
- if an input/output error occurspublic Class<?> resolveClass(String name) throws ClassNotFoundException, IOException
ClassNotFoundException
IOException
protected Class<?> resolveProxyClass(String[] interfaces) throws IOException, ClassNotFoundException
resolveProxyClass
in class ObjectInputStream
IOException
ClassNotFoundException
public Class<?> findReplicationClass(String name) throws ClassNotFoundException, IOException
ClassNotFoundException
IOException
public Class<?> findExternalClass(String name) throws ClassNotFoundException
ClassNotFoundException
public void close() throws IOException
close
in interface Closeable
close
in interface ObjectInput
close
in interface AutoCloseable
close
in class ObjectInputStream
IOException
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.