Buggy code:
public class AlgogoCommand implements CommandExecutor { @ Override public final boolean onCommand ( final CommandSender sender , final Command command , final String label , final String [ ] args ) { if ( ( args . length ) < 1 ) { return false ; } args [ 0 ] = args [ 0 ] . toLowerCase ( ) ; if ( ! ( sender . hasPermission ( ( "algogo." + ( args [ 0 ] ) ) ) ) ) { sender . sendMessage ( ( ( ChatColor . RED ) + "You<seq2seq4repair_space>don't<seq2seq4repair_space>have<seq2seq4repair_space>the<seq2seq4repair_space>permission<seq2seq4repair_space>to<seq2seq4repair_space>perform<seq2seq4repair_space>this<seq2seq4repair_space>action<seq2seq4repair_space>!" ) ) ; return true ; } final AlgorithmListener listener = algorithms . get ( sender ) ; switch ( args [ 0 ] ) { case "launch" : if ( ( args . length ) < 2 ) { return false ; } if ( listener != null ) { sender . sendMessage ( ( ( ChatColor . RED ) + "You<seq2seq4repair_space>have<seq2seq4repair_space>already<seq2seq4repair_space>launched<seq2seq4repair_space>an<seq2seq4repair_space>algorithm<seq2seq4repair_space>which<seq2seq4repair_space>is<seq2seq4repair_space>currently<seq2seq4repair_space>running." ) ) ; return true ; } try { final String filename = Joiner . on ( '<seq2seq4repair_space>' ) . join ( Arrays . copyOfRange ( args , 1 , args . length ) ) ; final File algoFile = new File ( AlgogoBukkit . getAlgorithmsFolder ( ) , ( filename . endsWith ( ".agg" ) ? filename : filename + ".agg" ) ) ; if ( ! ( algoFile . exists ( ) ) ) { sender . sendMessage ( ( ( ( ( ChatColor . RED ) + "The<seq2seq4repair_space>file<seq2seq4repair_space>\"" ) + ( algoFile . getName ( ) ) ) + "\"<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>exist<seq2seq4repair_space>!" ) ) ; break ; } new AlgorithmListener ( sender , Algorithm . fromJSON ( Files . readAllLines ( Paths . get ( algoFile . getPath ( ) ) , StandardCharsets . UTF_8 ) . get ( 0 ) ) ) ; } catch ( final Exception ex ) { ex . printStackTrace ( ) ; sender . sendMessage ( ( ( ChatColor . RED ) + ( ex . getClass ( ) . getName ( ) ) ) ) ; } break ; case "interrupt" : if ( listener == null ) { sender . sendMessage ( ( ( ChatColor . RED ) + "You<seq2seq4repair_space>do<seq2seq4repair_space>not<seq2seq4repair_space>have<seq2seq4repair_space>any<seq2seq4repair_space>algorithm<seq2seq4repair_space>that<seq2seq4repair_space>is<seq2seq4repair_space>currently<seq2seq4repair_space>running." ) ) ; return true ; } listener . currentRunnable . interrupt ( ) ; if ( ( listener . currentCallable ) != null ) { <START_BUG> listener . currentCallable . setMessage ( "Algorithm<seq2seq4repair_space>interrupted." ) ; <END_BUG> } break ; case "list" : for ( final String algorithm : AlgogoBukkit . getAlgorithmsFolder ( ) . list ( ) ) { sender . sendMessage ( algorithm ) ; } break ; case "value" : if ( ( args . length ) < 2 ) { return false ; } AlgorithmListener . sendValue ( sender , Joiner . on ( '<seq2seq4repair_space>' ) . join ( Arrays . copyOfRange ( args , 1 , args . length ) ) , listener ) ; break ; default : return false ; } return true ; } public final String getUsage ( final PluginCommand command ) { } No newline ; at end ; of file ; }

Fix:
listener . currentCallable . setMessage ( "0" ) ;