net.sf.jasperreports.engine.util

## Class ContextClassLoaderObjectInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.ObjectInputStream
    - - net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream

- All Implemented Interfaces:
    java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants, java.lang.AutoCloseable

      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 6932 2014-02-27 09:32:21Z 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

    Constructors
    Constructor and Description
    `ContextClassLoaderObjectInputStream(java.io.InputStream in)` Deprecated. Replaced by `ContextClassLoaderObjectInputStream(JasperReportsContext, InputStream)`.
    `ContextClassLoaderObjectInputStream(JasperReportsContext jasperReportsContext, java.io.InputStream in)` Creates an object input stream that reads data from the specified `InputStream`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `JasperReportsContext` | `getJasperReportsContext()`
    `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(JasperReportsContext jasperReportsContext,
                                             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)`

    - #### ContextClassLoaderObjectInputStream

          public ContextClassLoaderObjectInputStream(java.io.InputStream in)
                                              throws java.io.IOException

      Deprecated. Replaced by `ContextClassLoaderObjectInputStream(JasperReportsContext, InputStream)`.
      Throws:
        `java.io.IOException`

  - ### Method Detail

    - #### getJasperReportsContext

          public JasperReportsContext getJasperReportsContext()

    - #### 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