org.jboss.invocation.pooled.interfaces
Class OptimizedObjectInputStream

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.ObjectInputStream
          extended byorg.jboss.invocation.pooled.interfaces.OptimizedObjectInputStream
All Implemented Interfaces:
java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class OptimizedObjectInputStream
extends java.io.ObjectInputStream

An ObjectInputStream subclass used by the MarshalledValue class to ensure the classes and proxies are loaded using the thread context class loader.


Nested Class Summary
 
Nested classes 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_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_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING
 
Constructor Summary
OptimizedObjectInputStream(java.io.InputStream is)
          Creates a new instance of MarshalledValueOutputStream
 
Method Summary
static void flushClassCache()
          Clear the current proxy cache.
protected static java.io.ObjectStreamClass lookup(java.lang.Class clazz)
           
protected  java.io.ObjectStreamClass readClassDescriptor()
           
protected  java.lang.Class resolveClass(java.io.ObjectStreamClass v)
          Use the thread context class loader to resolve the class
protected  java.lang.Class resolveProxyClass(java.lang.String[] interfaces)
           
static void useClassCache(boolean flag)
          Enable local caching of resolved proxy classes.
 
Methods inherited from class java.io.ObjectInputStream
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, 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

OptimizedObjectInputStream

public OptimizedObjectInputStream(java.io.InputStream is)
                           throws java.io.IOException
Creates a new instance of MarshalledValueOutputStream

Method Detail

useClassCache

public static void useClassCache(boolean flag)
Enable local caching of resolved proxy classes. This can only be used if there is a single ULR and no redeployment of the proxy classes.

Parameters:
flag - true to enable caching, false to disable it

flushClassCache

public static void flushClassCache()
Clear the current proxy cache.


lookup

protected static java.io.ObjectStreamClass lookup(java.lang.Class clazz)

readClassDescriptor

protected java.io.ObjectStreamClass readClassDescriptor()
                                                 throws java.io.IOException,
                                                        java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException

resolveClass

protected java.lang.Class resolveClass(java.io.ObjectStreamClass v)
                                throws java.io.IOException,
                                       java.lang.ClassNotFoundException
Use the thread context class loader to resolve the class

Throws:
java.io.IOException - Any exception thrown by the underlying OutputStream.
java.lang.ClassNotFoundException

resolveProxyClass

protected java.lang.Class resolveProxyClass(java.lang.String[] interfaces)
                                     throws java.io.IOException,
                                            java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException