Class 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.
    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, SERIAL_FILTER_PERMISSION, 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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      JasperReportsContext getJasperReportsContext()  
      protected java.lang.Class<?> resolveClass​(java.io.ObjectStreamClass desc)
      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)
      Checks to see if the object is an instance of java.awt.Font, and in case it is, it replaces it with the one looked up for in the font extensions.
      • Methods inherited from class java.io.ObjectInputStream

        available, close, defaultReadObject, enableResolveObject, getObjectInputFilter, read, read, readBoolean, readByte, readChar, readClassDescriptor, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveProxyClass, setObjectInputFilter, skipBytes
      • Methods inherited from class java.io.InputStream

        mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • 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(InputStream)
    • Method Detail

      • resolveClass

        protected java.lang.Class<?> resolveClass​(java.io.ObjectStreamClass desc)
                                           throws java.io.IOException,
                                                  java.lang.ClassNotFoundException
        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
        Checks to see if the object is an instance of java.awt.Font, and in case it is, it replaces it with the one looked up for in the font extensions.
        Overrides:
        resolveObject in class java.io.ObjectInputStream
        Throws:
        java.io.IOException