@Override
    public void handleUnmarshallingException(Throwable problem, Class<?> subjectClass) {
      if (log.isDebugEnabled()) {
        StringBuilder builder = new StringBuilder();
        ClassLoader cl = subjectClass.getClassLoader();
        builder.append("classloader hierarchy:");
        ClassLoader parent = cl;
        while (parent != null) {
          if (parent.equals(cl)) {
            builder.append("\n\t\t-> type classloader = ").append(parent);
          } else {
            builder.append("\n\t\t-> parent classloader = ").append(parent);
          }
          URL[] urls = getClassLoaderURLs(parent);

          if (urls != null) {
            for (URL u : urls) builder.append("\n\t\t->...").append(u);
          }

          parent = parent.getParent();
        }
        TraceInformation.addUserInformation(problem, builder.toString());
      }
    }
 @Override
 public void handleMarshallingException(Throwable problem, Object subject) {
   if (log.isDebugEnabled()) {
     TraceInformation.addUserInformation(problem, "toString = " + subject.toString());
   }
 }