Buggy code:
public class getfasta extends Configured implements Tool { private static Long timestamp ; private static Long lowTimestamp ; private static Long entNum ; public static enum ENTRY_COUNTER { ENTRIES , MODIFIED , NEW , DELETED , NON_MATCHING ; } public static class getfastaMap extends TableMapper < Text , Text > { private HTable inputTable ; private String taxon ; private String type ; private Hashtable < String , String > delimiters ; private Class < ? > entryType ; public void setup ( Context context ) throws IOException { } public void map ( ImmutableBytesWritable key , Result value , Context context ) throws IOException , InterruptedException { } } public static class getfastaReduce extends Reducer < Text , Text , Text , Text > { private MultipleOutputs < Text , Text > multiOut ; public void setup ( Context context ) { } public void reduce ( Text key , Iterable < Text > value , Context context ) throws IOException , InterruptedException { } public void cleanup ( Context context ) throws IOException , InterruptedException { } } public static void main ( String [ ] args ) throws Exception { } public int run ( String [ ] args ) throws Exception { Configuration argConf = getConf ( ) ; String inputTableS = argConf . get ( "input_table" ) ; String outputFile = argConf . get ( "output_file" , "temp" ) ; String timestampStart = argConf . get ( "timestamp_start" , "0" ) ; String timestampStop = argConf . get ( "timestamp_stop" , Integer . toString ( Integer . MAX_VALUE ) ) ; String delimiter = argConf . get ( "regex" , "ID=.*" ) ; String taxon = argConf . get ( "addendum" , "" ) ; String type = argConf . get ( "type" ) ; String className = argConf . get ( "classname" , "uniprot" ) ; String runId = argConf . get ( "run_id" , "" ) ; String taskId = argConf . get ( "task_id" , "" ) ; String database = argConf . get ( "database" , "n" ) ; String startRow = "" ; String endRow = "" ; if ( ( ! ( runId . isEmpty ( ) ) ) && ( database . equals ( "n" ) ) ) { startRow = runId ; endRow = Integer . toString ( ( 1 + ( new Integer ( runId ) ) ) ) ; } if ( ( ! ( taskId . isEmpty ( ) ) ) && ( database . equals ( "n" ) ) ) { endRow = ( startRow + "_" ) + ( String . format ( "%04d" , ( 1 + ( new Integer ( taskId ) ) ) ) ) ; startRow = ( startRow + "_" ) + ( String . format ( "%04d" , new Integer ( taskId ) ) ) ; } System . out . println ( outputFile ) ; Configuration config = HBaseConfiguration . create ( ) ; config . set ( "mapred.textoutputformat.separator" , "\n" ) ; config . set ( "timestamp" , timestampStop ) ; config . set ( "low_timestamp" , timestampStart ) ; config . set ( "delimiter" , delimiter ) ; config . set ( "taxon" , taxon ) ; config . set ( "type" , type ) ; <START_BUG> config . set ( "classname" , ( ( "org.diffdb." + className ) + "Entry" ) ) ; <END_BUG> config . set ( "mapred.job.map.memory.mb" , "3072" ) ; config . set ( "mapred.job.reduce.memory.mb" , "3072" ) ; if ( database . equals ( "n" ) ) { config . set ( "run_id" , runId ) ; config . set ( "task_id" , taskId ) ; } dbutil db_util = new dbutil ( config ) ; Job job = new Job ( config , ( ( ( "getfasta_" + className ) + "_" ) + inputTableS ) ) ; MultipleOutputs . setCountersEnabled ( job , true ) ; System . out . println ( ( "Type:<seq2seq4repair_space>" + type ) ) ; System . out . println ( ( "Taxon:<seq2seq4repair_space>" + taxon ) ) ; System . out . println ( ( "Classname:<seq2seq4repair_space>" + className ) ) ; System . out . println ( ( "Input<seq2seq4repair_space>table:<seq2seq4repair_space>" + inputTableS ) ) ; System . out . println ( ( "Start<seq2seq4repair_space>row:<seq2seq4repair_space>" + startRow ) ) ; System . out . println ( ( "End<seq2seq4repair_space>row:<seq2seq4repair_space>" + endRow ) ) ; System . out . println ( ( "Timestamp<seq2seq4repair_space>start:<seq2seq4repair_space>" + timestampStart ) ) ; System . out . println ( ( "Timestamp<seq2seq4repair_space>stop:<seq2seq4repair_space>" + timestampStop ) ) ; HBaseAdmin hbAdmin = new HBaseAdmin ( config ) ; if ( ! ( hbAdmin . tableExists ( inputTableS ) ) ) { System . out . println ( "NO<seq2seq4repair_space>TABLE!" ) ; } Scan ourScan = new Scan ( ) ; ourScan . setCaching ( 100 ) ; ourScan . setCacheBlocks ( false ) ; if ( ( ! ( startRow . isEmpty ( ) ) ) && ( ! ( endRow . isEmpty ( ) ) ) ) { ourScan . setStartRow ( startRow . getBytes ( ) ) ; ourScan . setStopRow ( endRow . getBytes ( ) ) ; } Long timestampS = new Long ( timestampStart ) ; Long timestampE = new Long ( timestampStop ) ; timestampE += 1 ; ourScan . setTimeRange ( timestampS , timestampE ) ; job . setJarByClass ( getfasta . getfastaMap . class ) ; TableMapReduceUtil . initTableMapperJob ( db_util . getRealName ( inputTableS ) , ourScan , getfasta . getfastaMap . class , Text . class , Text . class , job ) ; job . setReducerClass ( getfasta . getfastaReduce . class ) ; job . setNumReduceTasks ( 1 ) ; TextOutputFormat . setOutputPath ( job , new Path ( outputFile ) ) ; MultipleOutputs . addNamedOutput ( job , "existing" , FileOutputFormat . class , Text . class , Text . class ) ;

Fix:
config . set ( "classname" , ( ( "org.gestore.plugin.entry." + className ) + "Entry" ) ) ;