Buggy code:
private static final int LOGFILE_OPT = 'l' ; private static final int NONGUI_OPT = 'n' ; private static final int PROPFILE_OPT = 'p' ; private static final int PROPFILE2_OPT = 'q' ; private static final int REMOTE_OPT = 'r' ; private static final int SERVER_OPT = 's' ; private static final int TESTFILE_OPT = 't' ; private static final int PROXY_USERNAME = 'u' ; private static final int VERSION_OPT = 'v' ; private static final int SYSTEM_PROPERTY = 'D' ; private static final int PROXY_HOST = 'H' ; private static final int JMETER_PROPERTY = 'J' ; private static final int LOGLEVEL = 'L' ; private static final int NONPROXY_HOSTS = 'N' ; private static final int PROXY_PORT = 'P' ; private static final int REMOTE_OPT_PARAM = 'R' ; private static final int SYSTEM_PROPFILE = 'S' ; private static final CLOptionDescriptor [ ] options = new CLOptionDescriptor [ ] { new CLOptionDescriptor ( "help" , CLOptionDescriptor . ARGUMENT_DISALLOWED , JMeter . HELP_OPT , "print<seq2seq4repair_space>usage<seq2seq4repair_space>information<seq2seq4repair_space>and<seq2seq4repair_space>exit" ) , new CLOptionDescriptor ( "version" , CLOptionDescriptor . ARGUMENT_DISALLOWED , JMeter . VERSION_OPT , "print<seq2seq4repair_space>the<seq2seq4repair_space>version<seq2seq4repair_space>information<seq2seq4repair_space>and<seq2seq4repair_space>exit" ) , new CLOptionDescriptor ( "propfile" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . PROPFILE_OPT , "the<seq2seq4repair_space>jmeter<seq2seq4repair_space>property<seq2seq4repair_space>file<seq2seq4repair_space>to<seq2seq4repair_space>use" ) , new CLOptionDescriptor ( "addprop" , ( ( CLOptionDescriptor . ARGUMENT_REQUIRED ) | ( CLOptionDescriptor . DUPLICATES_ALLOWED ) ) , JMeter . PROPFILE2_OPT , "additional<seq2seq4repair_space>JMeter<seq2seq4repair_space>property<seq2seq4repair_space>file(s)" ) , new CLOptionDescriptor ( "testfile" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . TESTFILE_OPT , "the<seq2seq4repair_space>jmeter<seq2seq4repair_space>test(.jmx)<seq2seq4repair_space>file<seq2seq4repair_space>to<seq2seq4repair_space>run" ) , new CLOptionDescriptor ( "logfile" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . LOGFILE_OPT , "the<seq2seq4repair_space>file<seq2seq4repair_space>to<seq2seq4repair_space>log<seq2seq4repair_space>samples<seq2seq4repair_space>to" ) , new CLOptionDescriptor ( "jmeterlogfile" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . JMLOGFILE_OPT , "jmeter<seq2seq4repair_space>run<seq2seq4repair_space>log<seq2seq4repair_space>file<seq2seq4repair_space>(jmeter.log)" ) , new CLOptionDescriptor ( "nongui" , CLOptionDescriptor . ARGUMENT_DISALLOWED , JMeter . NONGUI_OPT , "run<seq2seq4repair_space>JMeter<seq2seq4repair_space>in<seq2seq4repair_space>nongui<seq2seq4repair_space>mode" ) , new CLOptionDescriptor ( "server" , CLOptionDescriptor . ARGUMENT_DISALLOWED , JMeter . SERVER_OPT , "run<seq2seq4repair_space>the<seq2seq4repair_space>JMeter<seq2seq4repair_space>server" ) , new CLOptionDescriptor ( "proxyHost" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . PROXY_HOST , "Set<seq2seq4repair_space>a<seq2seq4repair_space>proxy<seq2seq4repair_space>server<seq2seq4repair_space>for<seq2seq4repair_space>JMeter<seq2seq4repair_space>to<seq2seq4repair_space>use" ) , new CLOptionDescriptor ( "proxyPort" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . PROXY_PORT , "Set<seq2seq4repair_space>proxy<seq2seq4repair_space>server<seq2seq4repair_space>port<seq2seq4repair_space>for<seq2seq4repair_space>JMeter<seq2seq4repair_space>to<seq2seq4repair_space>use" ) , new CLOptionDescriptor ( "nonProxyHosts" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . NONPROXY_HOSTS , "Set<seq2seq4repair_space>nonproxy<seq2seq4repair_space>host<seq2seq4repair_space>list<seq2seq4repair_space>(e.g.<seq2seq4repair_space>*.apache.org|localhost)" ) , new CLOptionDescriptor ( "username" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . PROXY_USERNAME , "Set<seq2seq4repair_space>username<seq2seq4repair_space>for<seq2seq4repair_space>proxy<seq2seq4repair_space>server<seq2seq4repair_space>that<seq2seq4repair_space>JMeter<seq2seq4repair_space>is<seq2seq4repair_space>to<seq2seq4repair_space>use" ) , new CLOptionDescriptor ( "password" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . PROXY_PASSWORD , "Set<seq2seq4repair_space>password<seq2seq4repair_space>for<seq2seq4repair_space>proxy<seq2seq4repair_space>server<seq2seq4repair_space>that<seq2seq4repair_space>JMeter<seq2seq4repair_space>is<seq2seq4repair_space>to<seq2seq4repair_space>use" ) , new CLOptionDescriptor ( "jmeterproperty" , ( ( CLOptionDescriptor . DUPLICATES_ALLOWED ) | ( CLOptionDescriptor . ARGUMENTS_REQUIRED_2 ) ) , JMeter . JMETER_PROPERTY , "Define<seq2seq4repair_space>additional<seq2seq4repair_space>JMeter<seq2seq4repair_space>properties" ) , new CLOptionDescriptor ( "systemproperty" , ( ( CLOptionDescriptor . DUPLICATES_ALLOWED ) | ( CLOptionDescriptor . ARGUMENTS_REQUIRED_2 ) ) , JMeter . SYSTEM_PROPERTY , "Define<seq2seq4repair_space>additional<seq2seq4repair_space>system<seq2seq4repair_space>properties" ) , new CLOptionDescriptor ( "systemPropertyFile" , ( ( CLOptionDescriptor . DUPLICATES_ALLOWED ) | ( CLOptionDescriptor . ARGUMENT_REQUIRED ) ) , JMeter . SYSTEM_PROPFILE , "additional<seq2seq4repair_space>system<seq2seq4repair_space>property<seq2seq4repair_space>file(s)" ) , new CLOptionDescriptor ( "loglevel" , ( ( CLOptionDescriptor . DUPLICATES_ALLOWED ) | ( CLOptionDescriptor . ARGUMENTS_REQUIRED_2 ) ) , JMeter . LOGLEVEL , "[category=]level<seq2seq4repair_space>e.g.<seq2seq4repair_space>jorphan=INFO<seq2seq4repair_space>or<seq2seq4repair_space>jmeter.util=DEBUG" ) , new CLOptionDescriptor ( "runremote" , CLOptionDescriptor . ARGUMENT_DISALLOWED , JMeter . REMOTE_OPT , "Start<seq2seq4repair_space>remote<seq2seq4repair_space>servers" ) , new CLOptionDescriptor ( "remotestart" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . REMOTE_OPT_PARAM , "Start<seq2seq4repair_space>these<seq2seq4repair_space>remote<seq2seq4repair_space>servers" ) , new CLOptionDescriptor ( "homedir" , CLOptionDescriptor . ARGUMENT_REQUIRED , JMeter . JMETER_HOME_OPT , "the<seq2seq4repair_space>jmeter<seq2seq4repair_space>home<seq2seq4repair_space>directory<seq2seq4repair_space>to<seq2seq4repair_space>use" ) } ; public JMeter ( ) { } private JMeter parent ; private void startGui ( CLOption testFile ) { } public void start ( String [ ] args ) { } private void updateClassLoader ( ) { } private void updatePath ( String property , String sep ) { } private void startOptionalServers ( ) { } private void setProxy ( CLArgsParser parser ) throws IllegalUserActionException { } private void initializeProperties ( CLArgsParser parser ) { } public void startServer ( ) { } public void startServer ( int port ) { } public void startNonGui ( CLOption testFile , CLOption logFile , CLOption remoteStart ) throws IllegalUserActionException { } private void run ( String testFile , String logFile , boolean remoteStart , String remote_hosts_string ) { FileInputStream reader = null ; try { File f = new File ( testFile ) ; if ( ( ! ( f . exists ( ) ) ) || ( ! ( f . isFile ( ) ) ) ) { JMeter . println ( ( "Could<seq2seq4repair_space>not<seq2seq4repair_space>open<seq2seq4repair_space>" + testFile ) ) ; return ; } FileServer . getFileServer ( ) . setBasedir ( f . getAbsolutePath ( ) ) ; reader = new FileInputStream ( f ) ; JMeter . log . info ( ( "Loading<seq2seq4repair_space>file:<seq2seq4repair_space>" + f ) ) ; HashTree tree = SaveService . loadTree ( reader ) ; <START_BUG> JMeterTreeModel treeModel = new JMeterTreeModel ( ) ; <END_BUG> JMeterTreeNode root = ( ( JMeterTreeNode ) ( treeModel . getRoot ( ) ) ) ; treeModel . addSubTree ( tree , root ) ; SearchByClass replaceableControllers = new SearchByClass ( ReplaceableController . class ) ; tree . traverse ( replaceableControllers ) ; Collection replaceableControllersRes = replaceableControllers . getSearchResults ( ) ; for ( Iterator iter = replaceableControllersRes . iterator ( ) ; iter . hasNext ( ) ; ) { ReplaceableController replaceableController = ( ( ReplaceableController ) ( iter . next ( ) ) ) ; replaceableController . resolveReplacementSubTree ( root ) ; } JMeter . convertSubTree ( tree ) ; if ( logFile != null ) { ResultCollector logger = new ResultCollector ( ) ; logger . setFilename ( logFile ) ; tree . add ( tree . getArray ( ) [ 0 ] , logger ) ; } String summariserName = JMeterUtils . getPropDefault ( "summariser.name" , "" ) ; if ( ( summariserName . length ( ) ) > 0 ) { JMeter . log . info ( ( ( "Creating<seq2seq4repair_space>summariser<seq2seq4repair_space><" + summariserName ) + ">" ) ) ; JMeter . println ( ( ( "Creating<seq2seq4repair_space>summariser<seq2seq4repair_space><" + summariserName ) + ">" ) ) ; Summariser summer = new Summariser ( summariserName ) ; tree . add ( tree . getArray ( ) [ 0 ] , summer ) ;

Fix:
JMeterTreeModel treeModel = new JMeterTreeModel ( new Object ( ) ) ;