org.jboss.soa.esb.util
Class ContextObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by org.jboss.soa.esb.util.ContextObjectInputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class ContextObjectInputStream
extends java.io.ObjectInputStream

Implementation of an object input stream that delegates class loading to the thread context classloader in preference.

Author:
kevin

Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField
 
Field Summary
 
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
 
Constructor Summary
protected ContextObjectInputStream()
          Construct a default instance of the context aware object input stream.
  ContextObjectInputStream(java.io.InputStream in)
          Construct a context aware object input stream using the specified input stream.
 
Method Summary
protected  java.lang.Class<?> resolveClass(java.io.ObjectStreamClass desc)
          Resolve the class using the active context.
protected  java.lang.Class<?> resolveProxyClass(java.lang.String[] interfaces)
          Resolve the proxy class using the active context.
 
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.io.InputStream
mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.io.ObjectInput
read, skip
 

Constructor Detail

ContextObjectInputStream

protected ContextObjectInputStream()
                            throws java.io.IOException,
                                   java.lang.SecurityException
Construct a default instance of the context aware object input stream.

Throws:
java.lang.SecurityException - if an active security manager prevents subclassing
java.io.IOException - for IO errors.

ContextObjectInputStream

public ContextObjectInputStream(java.io.InputStream in)
                         throws java.io.IOException
Construct a context aware object input stream using the specified input stream.

Parameters:
in - The associated input stream.
Throws:
java.io.IOException - for IO errors reading from the stream.
Method Detail

resolveClass

protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass desc)
                                   throws java.io.IOException,
                                          java.lang.ClassNotFoundException
Resolve the class using the active context.

Overrides:
resolveClass in class java.io.ObjectInputStream
Parameters:
desc - The object stream class description.
Returns:
The associated class.
Throws:
java.lang.ClassNotFoundException - if the class cannot be found.
java.io.IOException - for I/O Errors.

resolveProxyClass

protected java.lang.Class<?> resolveProxyClass(java.lang.String[] interfaces)
                                        throws java.io.IOException,
                                               java.lang.ClassNotFoundException
Resolve the proxy class using the active context.

Overrides:
resolveProxyClass in class java.io.ObjectInputStream
Parameters:
interfaces - The interfaces associated with the proxy.
Returns:
The associated class.
Throws:
java.lang.ClassNotFoundException - if an interface cannot be found.
java.io.IOException - for I/O Errors.