package com.linkedin.camus.etl.kafka.common; import java.io.PrintWriter; import java.io.StringWriter; import org.apache.hadoop.io.Text; public class ExceptionWritable extends Text { public ExceptionWritable() { super(); } public ExceptionWritable(String exception) { super(exception); } public ExceptionWritable(Exception e) { set(null, e); } public ExceptionWritable(String message, Exception e) { set(message, e); } public void set(String message, Throwable e) { StringWriter strWriter = new StringWriter(); PrintWriter printer = new PrintWriter(strWriter); if (message != null) { printer.write(message); printer.write("\n"); } e.printStackTrace(printer); super.set(strWriter.toString()); printer.close(); } public void set(Exception e) { set(null, e); } public void set(ExceptionWritable other) { super.set(other.getBytes()); } }