package ingraph.bulkloader.csv.loader.cellprocessor;

import org.supercsv.cellprocessor.CellProcessorAdaptor;
import org.supercsv.cellprocessor.ift.StringCellProcessor;
import org.supercsv.util.CsvContext;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

abstract public class AbstractParseEpoch extends CellProcessorAdaptor implements StringCellProcessor {

	protected final DateFormat formatter;

	public AbstractParseEpoch(final String dateTimeFormat) {
		super();
		formatter = new SimpleDateFormat(dateTimeFormat);
		formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
	}

	public Object execute(final Object value, final CsvContext context) {
		validateInputNotNull(value, context);

		long epoch = Long.parseLong(value.toString());
		long result = Long.valueOf(formatter.format(new java.util.Date(epoch)));

		return next.execute(result, context);
	}

}

package ingraph.bulkloader.csv.loader.cellprocessor;

import org.supercsv.cellprocessor.CellProcessorAdaptor;
import org.supercsv.cellprocessor.ift.StringCellProcessor;
import org.supercsv.exception.SuperCsvCellProcessorException;
import org.supercsv.util.CsvContext;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.TimeZone;

abstract public class AbstractParseEpoch extends CellProcessorAdaptor implements StringCellProcessor {

	protected final DateFormat formatter;

	public AbstractParseEpoch(final String dateTimeFormat) {
		super();
		formatter = new SimpleDateFormat(dateTimeFormat);
		formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
	}

	public Object execute(final Object value, final CsvContext context) {
		validateInputNotNull(value, context);

		if (!(value instanceof String)) {
			throw new SuperCsvCellProcessorException(String.class, value, context, this);
		}

		long epoch = Long.parseLong(value.toString());
		long result = Long.valueOf(formatter.format(new java.util.Date(epoch)));

		return next.execute(result, context);
	}

}

--- 
+++ 
@@ -2,7 +2,6 @@
 
 import org.supercsv.cellprocessor.CellProcessorAdaptor;
 import org.supercsv.cellprocessor.ift.StringCellProcessor;
-import org.supercsv.exception.SuperCsvCellProcessorException;
 import org.supercsv.util.CsvContext;
 
 import java.text.DateFormat;
@@ -22,10 +21,6 @@
 	public Object execute(final Object value, final CsvContext context) {
 		validateInputNotNull(value, context);
 
-		if (!(value instanceof String)) {
-			throw new SuperCsvCellProcessorException(String.class, value, context, this);
-		}
-
 		long epoch = Long.parseLong(value.toString());
 		long result = Long.valueOf(formatter.format(new java.util.Date(epoch)));
 
Remove error handling for cases that never occur with benchmark data
