org.codehaus.aspectwerkz.util
Class UnbrokenObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by org.codehaus.aspectwerkz.util.UnbrokenObjectInputStream
All Implemented Interfaces:
Closeable, DataInput, ObjectInput, ObjectStreamConstants

public class UnbrokenObjectInputStream
extends ObjectInputStream

Fixes the ObjectInputStream class, which does not always resolve the class correctly in complex class loader hierarchies.

Author:
Jonas BonŽr

Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectInputStream
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
UnbrokenObjectInputStream()
          Creates a a new instance.
UnbrokenObjectInputStream(InputStream in)
          Creates a new instance.
 
Method Summary
protected  Class resolveClass(ObjectStreamClass desc)
          Overrides the parents resolveClass method and resolves the class using the context class loader instead of Class.forName().
protected  Class resolveProxyClass(String[] interfaces)
          Overrides the parents resolveClass method and resolves the class using the context class loader instead of Class.forName().
 
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

UnbrokenObjectInputStream

public UnbrokenObjectInputStream()
                          throws IOException,
                                 SecurityException
Creates a a new instance.

Throws:
IOException
SecurityException

UnbrokenObjectInputStream

public UnbrokenObjectInputStream(InputStream in)
                          throws IOException
Creates a new instance.

Parameters:
in - the input stream to deserialize the object from.
Throws:
IOException
Method Detail

resolveClass

protected Class resolveClass(ObjectStreamClass desc)
                      throws IOException,
                             ClassNotFoundException
Overrides the parents resolveClass method and resolves the class using the context class loader instead of Class.forName().

Overrides:
resolveClass in class ObjectInputStream
Throws:
IOException
ClassNotFoundException

resolveProxyClass

protected Class resolveProxyClass(String[] interfaces)
                           throws IOException,
                                  ClassNotFoundException
Overrides the parents resolveClass method and resolves the class using the context class loader instead of Class.forName().

Overrides:
resolveProxyClass in class ObjectInputStream
Throws:
IOException
ClassNotFoundException


Copyright © 2002-2005 Jonas Bonér, Alexandre Vasseur. All Rights Reserved.