Buggy code:
public abstract class AbstractUserTopology { private static final List < String > setupSqls = Lists . newArrayList ( "create<seq2seq4repair_space>table<seq2seq4repair_space>if<seq2seq4repair_space>not<seq2seq4repair_space>exists<seq2seq4repair_space>user<seq2seq4repair_space>(user_id<seq2seq4repair_space>integer,<seq2seq4repair_space>user_name<seq2seq4repair_space>varchar(100),<seq2seq4repair_space>dept_name<seq2seq4repair_space>varchar(100),<seq2seq4repair_space>create_date<seq2seq4repair_space>date)" , "create<seq2seq4repair_space>table<seq2seq4repair_space>if<seq2seq4repair_space>not<seq2seq4repair_space>exists<seq2seq4repair_space>department<seq2seq4repair_space>(dept_id<seq2seq4repair_space>integer,<seq2seq4repair_space>dept_name<seq2seq4repair_space>varchar(100))" , "create<seq2seq4repair_space>table<seq2seq4repair_space>if<seq2seq4repair_space>not<seq2seq4repair_space>exists<seq2seq4repair_space>user_department<seq2seq4repair_space>(user_id<seq2seq4repair_space>integer,<seq2seq4repair_space>dept_id<seq2seq4repair_space>integer)" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>department<seq2seq4repair_space>values<seq2seq4repair_space>(1,<seq2seq4repair_space>'R&D')" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>department<seq2seq4repair_space>values<seq2seq4repair_space>(2,<seq2seq4repair_space>'Finance')" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>department<seq2seq4repair_space>values<seq2seq4repair_space>(3,<seq2seq4repair_space>'HR')" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>department<seq2seq4repair_space>values<seq2seq4repair_space>(4,<seq2seq4repair_space>'Sales')" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>user_department<seq2seq4repair_space>values<seq2seq4repair_space>(1,<seq2seq4repair_space>1)" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>user_department<seq2seq4repair_space>values<seq2seq4repair_space>(2,<seq2seq4repair_space>2)" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>user_department<seq2seq4repair_space>values<seq2seq4repair_space>(3,<seq2seq4repair_space>3)" , "insert<seq2seq4repair_space>into<seq2seq4repair_space>user_department<seq2seq4repair_space>values<seq2seq4repair_space>(4,<seq2seq4repair_space>4)" ) ; protected UserSpout userSpout ; protected JdbcMapper jdbcMapper ; protected JdbcLookupMapper jdbcLookupMapper ; protected static final String TABLE_NAME = "user" ; protected static final String JDBC_CONF = "jdbc.conf" ; protected static final String SELECT_QUERY = "select<seq2seq4repair_space>dept_name<seq2seq4repair_space>from<seq2seq4repair_space>department,<seq2seq4repair_space>user_department<seq2seq4repair_space>where<seq2seq4repair_space>department.dept_id<seq2seq4repair_space>=<seq2seq4repair_space>user_department.dept_id" + "<seq2seq4repair_space>and<seq2seq4repair_space>user_department.user_id<seq2seq4repair_space>=<seq2seq4repair_space>?" ; public void execute ( String [ ] args ) throws Exception { if ( ( ( args . length ) != 4 ) && ( ( args . length ) != 5 ) ) { System . out . println ( ( ( ( "Usage:<seq2seq4repair_space>" + ( this . getClass ( ) . getSimpleName ( ) ) ) + "<seq2seq4repair_space><dataSourceClassName><seq2seq4repair_space><dataSource.url><seq2seq4repair_space>" ) + "<user><seq2seq4repair_space><password><seq2seq4repair_space>[topology<seq2seq4repair_space>name]" ) ) ; System . exit ( ( - 1 ) ) ; } Map map = Maps . newHashMap ( ) ; map . put ( "dataSourceClassName" , args [ 0 ] ) ; map . put ( "dataSource.url" , args [ 1 ] ) ; map . put ( "dataSource.user" , args [ 2 ] ) ; map . put ( "dataSource.password" , args [ 3 ] ) ; Config config = new Config ( ) ; config . put ( AbstractUserTopology . JDBC_CONF , map ) ; JDBCClient jdbcClient = new JDBCClient ( map ) ; for ( String sql : AbstractUserTopology . setupSqls ) { jdbcClient . executeSql ( sql ) ; } this . userSpout = new UserSpout ( ) ; this . jdbcMapper = new SimpleJdbcMapper ( AbstractUserTopology . TABLE_NAME , map ) ; Fields outputFields = new Fields ( "user_id" , "user_name" , "dept_name" , "create_date" ) ; List < Column > queryParamColumns = Lists . newArrayList ( new Column ( "user_id" , Types . INTEGER ) ) ; this . jdbcLookupMapper = new org . apache . storm . jdbc . mapper . SimpleJdbcLookupMapper ( outputFields , queryParamColumns ) ; if ( ( args . length ) == 4 ) { LocalCluster cluster = new LocalCluster ( ) ; cluster . submitTopology ( "test" , config , getTopology ( ) ) ; Thread . sleep ( 30000 ) ; cluster . killTopology ( "test" ) ; cluster . shutdown ( ) ; System . exit ( 0 ) ; } else { <START_BUG> StormSubmitter . submitTopology ( args [ 5 ] , config , getTopology ( ) ) ; <END_BUG> } } public abstract StormTopology getTopology ( ) { } }

Fix:
StormSubmitter . submitTopology ( args [ 4 ] , config , getTopology ( ) ) ;