Buggy code:
public class StormSubmitter { public static Logger LOG = LoggerFactory . getLogger ( StormSubmitter . class ) ; private static Iface localNimbus = null ; public static void setLocalNimbus ( Nimbus . Iface localNimbusHandler ) { } public static void submitTopology ( String name , Map stormConf , StormTopology topology ) throws AlreadyAliveException , InvalidTopologyException { } public static void submitTopology ( String name , Map stormConf , StormTopology topology , SubmitOptions opts ) throws AlreadyAliveException , InvalidTopologyException { if ( ! ( Utils . isValidConf ( stormConf ) ) ) { throw new IllegalArgumentException ( "Storm<seq2seq4repair_space>conf<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>valid.<seq2seq4repair_space>Must<seq2seq4repair_space>be<seq2seq4repair_space>json-serializable" ) ; } stormConf = new HashMap ( stormConf ) ; stormConf . putAll ( Utils . readCommandLineOpts ( ) ) ; Map conf = Utils . readStormConfig ( ) ; conf . putAll ( stormConf ) ; try { String serConf = JSONValue . toJSONString ( stormConf ) ; if ( ( StormSubmitter . localNimbus ) != null ) { StormSubmitter . LOG . info ( ( ( "Submitting<seq2seq4repair_space>topology<seq2seq4repair_space>" + name ) + "<seq2seq4repair_space>in<seq2seq4repair_space>local<seq2seq4repair_space>mode" ) ) ; StormSubmitter . localNimbus . submitTopology ( name , null , serConf , topology ) ; } else { NimbusClient client = NimbusClient . getConfiguredClient ( conf ) ; if ( StormSubmitter . topologyNameExists ( conf , name ) ) { throw new RuntimeException ( ( ( "Topology<seq2seq4repair_space>with<seq2seq4repair_space>name<seq2seq4repair_space>`" + name ) + "`<seq2seq4repair_space>already<seq2seq4repair_space>exists<seq2seq4repair_space>on<seq2seq4repair_space>cluster" ) ) ; } StormSubmitter . submitJar ( conf ) ; try { StormSubmitter . LOG . info ( ( ( ( "Submitting<seq2seq4repair_space>topology<seq2seq4repair_space>" + name ) + "<seq2seq4repair_space>in<seq2seq4repair_space>distributed<seq2seq4repair_space>mode<seq2seq4repair_space>with<seq2seq4repair_space>conf<seq2seq4repair_space>" ) + serConf ) ) ; if ( opts != null ) { client . getClient ( ) . submitTopologyWithOpts ( name , StormSubmitter . submittedJar , serConf , topology , opts ) ; } else { client . getClient ( ) . submitTopology ( name , StormSubmitter . submittedJar , serConf , topology ) ; } } catch ( InvalidTopologyException e ) { <START_BUG> StormSubmitter . LOG . warn ( ( "Topology<seq2seq4repair_space>submission<seq2seq4repair_space>exception:<seq2seq4repair_space>" + ( e . get_msg ( ) ) ) ) ; <END_BUG> throw e ; } catch ( AlreadyAliveException e ) { StormSubmitter . LOG . warn ( "Topology<seq2seq4repair_space>already<seq2seq4repair_space>alive<seq2seq4repair_space>exception" , e ) ; throw e ; } finally { client . close ( ) ; } } StormSubmitter . LOG . info ( ( "Finished<seq2seq4repair_space>submitting<seq2seq4repair_space>topology:<seq2seq4repair_space>" + name ) ) ; } catch ( TException e ) { throw new RuntimeException ( e ) ; } } private static boolean topologyNameExists ( Map conf , String name ) { } private static String submittedJar = null ; private static void submitJar ( Map conf ) { } public static String submitJar ( Map conf , String localJar ) { } }

Fix:
StormSubmitter . LOG . warn ( "Topology<seq2seq4repair_space>submission<seq2seq4repair_space>exception" , e ) ;