Package io.quarkus.quartz.runtime.jdbc
Class QuarkusObjectInputStream
java.lang.Object
java.io.InputStream
java.io.ObjectInputStream
io.quarkus.quartz.runtime.jdbc.QuarkusObjectInputStream
- All Implemented Interfaces:
Closeable
,DataInput
,ObjectInput
,ObjectStreamConstants
,AutoCloseable
See the javadoc in
resolveClass(ObjectStreamClass)
-
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, 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
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>
We override theObjectInputStream.resolveClass(ObjectStreamClass)
method to workaround a class loading issue in Test & Dev mode.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, resolveObject, resolveProxyClass, setObjectInputFilter, skipBytes
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, 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 Details
-
QuarkusObjectInputStream
- Throws:
IOException
-
-
Method Details
-
resolveClass
We override theObjectInputStream.resolveClass(ObjectStreamClass)
method to workaround a class loading issue in Test & Dev mode. This is because, the implementation of this method in ObjectInputStream returns the result of calling Class.forName(desc.getName(), false, loader) where loader is the first class loader on the current thread's stack (starting from the currently executing method) that is neither the platform class loader nor its ancestor; otherwise, loader is the platform class loader. That classloader happens to the Base Runtime QuarkusClassLoader in Test and Dev mode which was causingClassNotFoundException
when loading user/application classes.- Overrides:
resolveClass
in classObjectInputStream
- Throws:
IOException
ClassNotFoundException
-