Utility class that analyzes objects for non-serializable nodes. Construct, then call {@link #check(Object)} with the object you want to check. When a non-serializable object isfound, a {@link WicketNotSerializableException} is thrown with a message that shows the trace upto 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 accessible that would otherwise be hidden. You should call {@link SerializableChecker#isAvailable()} to see whether this class can operate properly. If itdoesn't, you should fall back to e.g. re-throwing/ printing the {@link NotSerializableException}you probably got before using this class.
@author eelcohillenius
@author Al Maw