org.apache.commons.io.input
Class ClassLoaderObjectInputStream

java.lang.Object
  |
  +--java.io.InputStream
        |
        +--java.io.ObjectInputStream
              |
              +--org.apache.commons.io.input.ClassLoaderObjectInputStream
All Implemented Interfaces:
java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class ClassLoaderObjectInputStream
extends java.io.ObjectInputStream

A special ObjectInputStream that loads a class based on a specified ClassLoader rather than the system default.

This is useful in dynamic container environments.

Since:
Commons IO 1.1
Version:
$Id: ClassLoaderObjectInputStream.java 241817 2005-08-27 23:16:02Z scolebourne $
Author:
Paul Hammant

Inner classes inherited from class java.io.ObjectInputStream
java.io.ObjectInputStream.GetField, java.io.ObjectInputStream.GetFieldImpl
 
Field Summary
private  java.lang.ClassLoader classLoader
          The class loader to use.
 
Fields inherited from class java.io.ObjectInputStream
abortClassNotFoundException, abortIOException, blockDataMode, buf, bufpos, bufsize, callbacks, cdata, CDATA_MAX_LEN, classdesc, classes, count, currCode, currentClass, currentClassDesc, currentGetFields, currentObject, data, dis, enableResolve, enableSubclassImplementation, in, nextWireOffset, readObjectArglist, recursionDepth, sbuf, spClass, wireHandle2Object
 
Fields inherited from class java.io.InputStream
SKIP_BUFFER_SIZE, skipBuffer
 
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
ClassLoaderObjectInputStream(java.lang.ClassLoader classLoader, java.io.InputStream inputStream)
          Constructs a new ClassLoaderObjectInputStream.
 
Method Summary
protected  java.lang.Class resolveClass(java.io.ObjectStreamClass objectStreamClass)
           
 
Methods inherited from class java.io.ObjectInputStream
allocateNewArray, allocateNewObject, assignWireOffset, available, bufferData, bytesToDoubles, bytesToFloats, close, defaultReadObject, doValidations, enableResolveObject, ensureBufferCapacity, growClassStacks, inputArray, inputClassDescriptor, inputClassFields, inputObject, inputProxyClassDescriptor, invokeObjectReader, latestUserDefinedLoader, loadClass0, peekCode, pushbackCode, read, read, readBoolean, readByte, readChar, readClassDescriptor, readCode, readDouble, readFields, readFloat, readFully, readFully, readFullyInternal, readInt, readLine, readLong, readObject, readObject, readObjectOverride, readShort, readStreamHeader, readUnsignedByte, readUnsignedShort, readUTF, readUTFBody, refill, registerValidation, resetStream, resolveObject, resolveProxyClass, setBlockData, setObjectFieldValue, setPrimitiveFieldValues, skipBytes, skipToEndOfBlockData
 
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, registerNatives, toString, wait, wait, wait
 
Methods inherited from interface java.io.ObjectInput
read, skip
 
Methods inherited from interface java.io.ObjectStreamConstants
 

Field Detail

classLoader

private java.lang.ClassLoader classLoader
The class loader to use.
Constructor Detail

ClassLoaderObjectInputStream

public ClassLoaderObjectInputStream(java.lang.ClassLoader classLoader,
                                    java.io.InputStream inputStream)
                             throws java.io.IOException,
                                    java.io.StreamCorruptedException
Constructs a new ClassLoaderObjectInputStream.
Parameters:
classLoader - the ClassLoader from which classes should be loaded
inputStream - the InputStream to work on
Throws:
java.io.IOException - in case of an I/O error
java.io.StreamCorruptedException - if the stream is corrupted
Method Detail

resolveClass

protected java.lang.Class resolveClass(java.io.ObjectStreamClass objectStreamClass)
                                throws java.io.IOException,
                                       java.lang.ClassNotFoundException
Overrides:
resolveClass in class java.io.ObjectInputStream