public final class SerializableChecker
extends java.io.ObjectOutputStream
check(Object obj). When a non-serializable object is found, a SerializableChecker.JaloNotSerializableException is
thrown with a message that shows the trace up to the not-serializable object. The exception is thrown for the first
non-serializable instance it encounters, so multiple problems will not be shown.
As this class depends heavily on JDK's serialization internals using introspection, analyzing may not be possible,
for instance when the runtime environment does not have sufficient rights to set fields accesible that would
otherwise be hidden. You should call isAvailable() to see whether this class can operate
properly. If it doesn't, you should fall back to e.g. re-throwing/ printing the NotSerializableException you
probably got before using this class.
| Modifier and Type | Class and Description |
|---|---|
static class |
SerializableChecker.JaloNotSerializableException
Exception that is thrown when a non-serializable object was found.
|
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 |
|---|
SerializableChecker(java.io.NotSerializableException exception)
Construct.
|
| Modifier and Type | Method and Description |
|---|---|
void |
check(java.lang.Object obj) |
static boolean |
isAvailable()
Gets whether we can execute the tests.
|
void |
reset() |
protected void |
writeObjectOverride(java.lang.Object obj) |
annotateClass, annotateProxyClass, close, defaultWriteObject, drain, enableReplaceObject, flush, putFields, replaceObject, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeClassDescriptor, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeShort, writeStreamHeader, writeUnshared, writeUTFpublic SerializableChecker(java.io.NotSerializableException exception)
throws java.io.IOException
exception - exception that should be set as the cause when throwing a new exceptionjava.io.IOExceptionpublic void reset()
throws java.io.IOException
reset in class java.io.ObjectOutputStreamjava.io.IOExceptionObjectOutputStream.reset()public void check(java.lang.Object obj)
public static boolean isAvailable()
check(Object) will just return and you are
advised to rely on the NotSerializableException. Clients are advised to call this method prior to calling
the check method.protected void writeObjectOverride(java.lang.Object obj)
throws java.io.IOException
writeObjectOverride in class java.io.ObjectOutputStreamjava.io.IOExceptionObjectOutputStream.writeObjectOverride(java.lang.Object)Copyright © 2018 SAP SE. All Rights Reserved.