public final class ReplicationStream
extends java.io.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.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(java.io.InputStream stream,
java.lang.ClassLoader[] classLoaders)
Construct a new instance of CustomObjectInputStream
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
java.lang.Class<?> |
findExternalClass(java.lang.String name) |
java.lang.Class<?> |
findReplicationClass(java.lang.String name) |
java.lang.Class<?> |
resolveClass(java.io.ObjectStreamClass classDesc)
Load the local class equivalent of the specified stream class
description, by using the class loader assigned to this Context.
|
java.lang.Class<?> |
resolveClass(java.lang.String name) |
protected java.lang.Class<?> |
resolveProxyClass(java.lang.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
public ReplicationStream(java.io.InputStream stream, java.lang.ClassLoader[] classLoaders) throws java.io.IOException
stream
- The input stream we will read fromclassLoaders
- The class loader array used to instantiate objectsjava.io.IOException
- if an input/output error occurspublic java.lang.Class<?> resolveClass(java.io.ObjectStreamClass classDesc) throws java.lang.ClassNotFoundException, java.io.IOException
resolveClass
in class java.io.ObjectInputStream
classDesc
- Class description from the input streamjava.lang.ClassNotFoundException
- if this class cannot be foundjava.io.IOException
- if an input/output error occurspublic java.lang.Class<?> resolveClass(java.lang.String name) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
protected java.lang.Class<?> resolveProxyClass(java.lang.String[] interfaces) throws java.io.IOException, java.lang.ClassNotFoundException
resolveProxyClass
in class java.io.ObjectInputStream
java.io.IOException
java.lang.ClassNotFoundException
public java.lang.Class<?> findReplicationClass(java.lang.String name) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
public java.lang.Class<?> findExternalClass(java.lang.String name) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.io.ObjectInput
close
in interface java.lang.AutoCloseable
close
in class java.io.ObjectInputStream
java.io.IOException
Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.