com.continuent.tungsten.common.utils
Class SerializationDebuggingUtils

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.ObjectOutputStream
          extended by com.continuent.tungsten.common.utils.SerializationDebuggingUtils
All Implemented Interfaces:
java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.io.ObjectOutput, java.io.ObjectStreamConstants

public class SerializationDebuggingUtils
extends java.io.ObjectOutputStream


Nested Class Summary
 
Nested classes/interfaces inherited from class java.io.ObjectOutputStream
java.io.ObjectOutputStream.PutField
 
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
SerializationDebuggingUtils(java.io.OutputStream out)
           
 
Method Summary
static boolean canBeSerialized(java.lang.Object objToValidate)
           
 java.util.List<java.lang.Class<?>> getStack()
          Returns the path to the last object serialized.
 java.lang.String printStack()
           
protected  java.lang.Object replaceObject(java.lang.Object o)
          Abuse replaceObject() as a hook to maintain our stack.
static java.lang.Object testForSerialization(java.lang.Object objToValidate)
           
 
Methods inherited from class java.io.ObjectOutputStream
annotateClass, annotateProxyClass, close, defaultWriteObject, drain, enableReplaceObject, flush, putFields, reset, useProtocolVersion, write, write, write, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeClassDescriptor, writeDouble, writeFields, writeFloat, writeInt, writeLong, writeObject, writeObjectOverride, writeShort, writeStreamHeader, writeUnshared, writeUTF
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SerializationDebuggingUtils

public SerializationDebuggingUtils(java.io.OutputStream out)
                            throws java.io.IOException
Throws:
java.io.IOException
Method Detail

replaceObject

protected java.lang.Object replaceObject(java.lang.Object o)
Abuse replaceObject() as a hook to maintain our stack.

Overrides:
replaceObject in class java.io.ObjectOutputStream

getStack

public java.util.List<java.lang.Class<?>> getStack()
Returns the path to the last object serialized. If an exception occurred, this should be the path to the non-serializable object.


printStack

public java.lang.String printStack()

testForSerialization

public static java.lang.Object testForSerialization(java.lang.Object objToValidate)
                                             throws java.lang.RuntimeException
Throws:
java.lang.RuntimeException

canBeSerialized

public static boolean canBeSerialized(java.lang.Object objToValidate)