net.sf.jasperreports.engine.util
Class ContextClassLoaderObjectInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.ObjectInputStream
          extended by net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream
All Implemented Interfaces:
java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants

public class ContextClassLoaderObjectInputStream
extends java.io.ObjectInputStream

A subclass of ObjectInputStream that uses the context class loader to resolve classes encountered in the input stream.

Version:
$Id: ContextClassLoaderObjectInputStream.java 4595 2011-09-08 15:55:10Z teodord $
Author:
Lucian Chirita (lucianc@users.sourceforge.net)

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
ContextClassLoaderObjectInputStream(java.io.InputStream in)
          Creates an object input stream that reads data from the specified InputStream.
 
Method Summary
protected  java.lang.Class<?> resolveClass(java.io.ObjectStreamClass desc)
          .classpath Calls super.resolveClass() and in case this fails with ClassNotFoundException attempts to load the class using the context class loader.
protected  java.lang.Object resolveObject(java.lang.Object obj)
          Calls super.resolveObject() and in case the object is a java.awt.Font, it look up for it is fails with ClassNotFoundException attempts to load the class using the context class loader.
 
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, resolveProxyClass, 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

ContextClassLoaderObjectInputStream

public ContextClassLoaderObjectInputStream(java.io.InputStream in)
                                    throws java.io.IOException
Creates an object input stream that reads data from the specified InputStream.

Parameters:
in - the input stream to read data from
Throws:
java.io.IOException
See Also:
ObjectInputStream.ObjectInputStream(InputStream)
Method Detail

resolveClass

protected java.lang.Class<?> resolveClass(java.io.ObjectStreamClass desc)
                                   throws java.io.IOException,
                                          java.lang.ClassNotFoundException
.classpath Calls super.resolveClass() and in case this fails with ClassNotFoundException attempts to load the class using the context class loader.

Overrides:
resolveClass in class java.io.ObjectInputStream
Throws:
java.io.IOException
java.lang.ClassNotFoundException

resolveObject

protected java.lang.Object resolveObject(java.lang.Object obj)
                                  throws java.io.IOException
Calls super.resolveObject() and in case the object is a java.awt.Font, it look up for it is fails with ClassNotFoundException attempts to load the class using the context class loader.

Overrides:
resolveObject in class java.io.ObjectInputStream
Throws:
java.io.IOException


© 2001-2010 Jaspersoft Corporation www.jaspersoft.com