public static class InstantiationUtil.FailureTolerantObjectInputStream extends InstantiationUtil.ClassLoaderObjectInputStream
ObjectInputStream
that ignores serialVersionUID mismatches when deserializing objects of
anonymous classes or our Scala serializer classes and also replaces occurences of GenericData.Array
(from Avro) by a dummy class so that the KryoSerializer can still be deserialized without
Avro being on the classpath.
The TypeSerializerSerializationUtil.TypeSerializerSerializationProxy
uses this specific object input stream to read serializers,
so that mismatching serialVersionUIDs of anonymous classes / Scala serializers are ignored.
This is a required workaround to maintain backwards compatibility for our pre-1.3 Scala serializers.
See FLINK-6869 for details.
ObjectInputStream.GetField
classLoader
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 and Description |
---|
FailureTolerantObjectInputStream(InputStream in,
ClassLoader cl) |
Modifier and Type | Method and Description |
---|---|
protected ObjectStreamClass |
readClassDescriptor() |
resolveClass, resolveProxyClass
available, close, defaultReadObject, enableResolveObject, read, read, readBoolean, readByte, readChar, readDouble, readFields, readFloat, readFully, readFully, readInt, readLine, readLong, readObject, readObjectOverride, readShort, readStreamHeader, readUnshared, readUnsignedByte, readUnsignedShort, readUTF, registerValidation, resolveObject, skipBytes
mark, markSupported, read, reset, skip
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
read, skip
public FailureTolerantObjectInputStream(InputStream in, ClassLoader cl) throws IOException
IOException
protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException
readClassDescriptor
in class ObjectInputStream
IOException
ClassNotFoundException
Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.