org.apache.catalina.tribes.io
Class ReplicationStream
java.lang.Object
java.io.InputStream
java.io.ObjectInputStream
org.apache.catalina.tribes.io.ReplicationStream
- All Implemented Interfaces:
- Closeable, DataInput, ObjectInput, ObjectStreamConstants
public final class ReplicationStream
- extends ObjectInputStream
Custom subclass of ObjectInputStream
that loads from the
class loader for this web application. This allows classes defined only
with the web application to be found correctly.
- Version:
- $Id: ReplicationStream.java 939305 2010-04-29 13:43:39Z kkolinko $
- Author:
- Craig R. McClanahan, Bip Thelin, Filip Hanik
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, 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 |
ReplicationStream
public ReplicationStream(InputStream stream,
ClassLoader[] classLoaders)
throws IOException
- Construct a new instance of CustomObjectInputStream
- Parameters:
stream
- The input stream we will read fromclassLoaders
- The class loader array used to instantiate objects
- Throws:
IOException
- if an input/output error occurs
resolveClass
public Class<?> resolveClass(ObjectStreamClass classDesc)
throws ClassNotFoundException,
IOException
- Load the local class equivalent of the specified stream class
description, by using the class loader assigned to this Context.
- Overrides:
resolveClass
in class ObjectInputStream
- Parameters:
classDesc
- Class description from the input stream
- Throws:
ClassNotFoundException
- if this class cannot be found
IOException
- if an input/output error occurs
resolveClass
public Class<?> resolveClass(String name)
throws ClassNotFoundException,
IOException
- Throws:
ClassNotFoundException
IOException
resolveProxyClass
protected Class<?> resolveProxyClass(String[] interfaces)
throws IOException,
ClassNotFoundException
- ObjectInputStream.resolveProxyClass has some funky way of using
the incorrect class loader to resolve proxy classes, let's do it our way instead
- Overrides:
resolveProxyClass
in class ObjectInputStream
- Throws:
IOException
ClassNotFoundException
findReplicationClass
public Class<?> findReplicationClass(String name)
throws ClassNotFoundException,
IOException
- Throws:
ClassNotFoundException
IOException
findExternalClass
public Class<?> findExternalClass(String name)
throws ClassNotFoundException
- Throws:
ClassNotFoundException
close
public void close()
throws IOException
- Specified by:
close
in interface Closeable
- Specified by:
close
in interface ObjectInput
- Overrides:
close
in class ObjectInputStream
- Throws:
IOException
Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.