Buggy code:
public class StandardJMeterEngine implements Runnable , JMeterEngine , JMeterThreadMonitor { private static final Logger log = LoggingManager . getLoggerForClass ( ) ; private static final long serialVersionUID = 231L ; private transient Thread runningThread ; private static final long WAIT_TO_DIE = 5 * 1000 ; private Map allThreads ; private volatile boolean startingGroups ; private boolean running = false ; private boolean serialized = false ; private volatile boolean schcdule_run = false ; private HashTree test ; private SearchByClass testListeners ; private String host = null ; private ListenerNotifier notifier ; private static final boolean exitAfterTest = JMeterUtils . getPropDefault ( "server.exitaftertest" , false ) ; private static final boolean startListenersLater = JMeterUtils . getPropDefault ( "jmeterengine.startlistenerslater" , true ) ; private static Map allThreadNames ; private static StandardJMeterEngine engine ; private static Map allThreadsSave ; public static void stopEngineNow ( ) { } public static void stopEngine ( ) { } private static final List testList = new ArrayList ( ) ; public static synchronized void register ( TestListener tl ) { } public static boolean stopThread ( String threadName ) { } public static boolean stopThreadNow ( String threadName ) { } private static boolean stopThread ( String threadName , boolean now ) { } public StandardJMeterEngine ( ) { } public StandardJMeterEngine ( String host ) { } public void configure ( HashTree testTree ) { } public void setHost ( String host ) { } protected HashTree getTestTree ( ) { } protected void compileTree ( ) { } private static class MyThreadGroup extends ThreadGroup { public MyThreadGroup ( String s ) { } public void uncaughtException ( Thread t , Throwable e ) { } } public void runTest ( ) throws JMeterEngineException { } private void removeThreadGroups ( List elements ) { } protected void notifyTestListenersOfStart ( ) { } protected void notifyTestListenersOfEnd ( ) { } private ListedHashTree cloneTree ( ListedHashTree tree ) { } public void reset ( ) { } public synchronized void threadFinished ( JMeterThread thread ) { } public synchronized void stopTest ( ) { } public synchronized void stopTest ( boolean b ) { } private class StopTest implements Runnable { boolean now ; private StopTest ( ) { } private StopTest ( boolean b ) { } public void run ( ) { } } public void run ( ) { } private void scheduleThread ( JMeterThread thread , ThreadGroup group ) { } private boolean verifyThreadsStopped ( ) { boolean stoppedAll = true ; Iterator iter = new HashSet ( allThreads . keySet ( ) ) . iterator ( ) ; while ( iter . hasNext ( ) ) { Thread t = ( ( Thread ) ( allThreads . get ( iter . next ( ) ) ) ) ; if ( ( t != null ) && ( t . isAlive ( ) ) ) { try { t . join ( StandardJMeterEngine . WAIT_TO_DIE ) ; } catch ( InterruptedException e ) { } if ( t . isAlive ( ) ) { stoppedAll = false ; <START_BUG> StandardJMeterEngine . log . info ( ( "Thread<seq2seq4repair_space>won't<seq2seq4repair_space>die:<seq2seq4repair_space>" + ( t . getName ( ) ) ) ) ; <END_BUG> } } } return stoppedAll ; } private void tellThreadsToStop ( ) { } public void askThreadsToStop ( ) { } private void stopAllThreads ( ) { } public void exit ( ) { } public void setProperties ( Properties p ) { } }

Fix:
StandardJMeterEngine . log . warn ( ( "Thread<seq2seq4repair_space>won't<seq2seq4repair_space>die:<seq2seq4repair_space>" + ( t . getName ( ) ) ) ) ;