Buggy code:
public class WorkBenchControllerFinal { private DBController dbController ; private File file ; private Label labelFilePath = new Label ( ) ; private File directory ; private Label labelDirPath = new Label ( ) ; private String casePath = "" ; private int currentCaseID = - 1 ; private int currentDirID = 0 ; private String currentDir = "" ; private Project currentProject = null ; @ FXML private ScrollPane MainResultPane ; @ FXML private StackPane timeLineViewPane ; ArrayList < String > functionList ; @ FXML MenuItem openProject ; @ FXML MenuItem saveProject ; @ FXML MenuItem saveAsProject ; @ FXML MenuItem generateReport ; @ FXML private MenuItem newDevice ; @ FXML private Menu existDeviceMenu ; @ FXML private Menu analysisMenu ; @ FXML private HBox functionHBox ; @ FXML private Label progressLabel ; private MainApp mainAppFinal ; private PluginManager pm ; private ProjectManager projm ; private ProgressBar importProgressIndicator ; public WorkBenchControllerFinal ( ) { } @ FXML private void initialize ( ) { pm = new PluginManager ( "PluginBinaries" ) ; pm . loadPlugins ( ) ; dbController = new DBQueryController ( ) ; projm = new ProjectManager ( ) ; List < String > plnames = pm . getGUIViewPluginNames ( ) ; for ( String s : plnames ) { System . out . println ( ( "TOOL:<seq2seq4repair_space>" + s ) ) ; functionList . add ( s ) ; } if ( ( dbController . getDeviceID ( ) ) == ( - 1 ) ) { Label noDevice = new Label ( "No<seq2seq4repair_space>device<seq2seq4repair_space>has<seq2seq4repair_space>been<seq2seq4repair_space>chosen." ) ; MainResultPane . setContent ( noDevice ) ; } for ( String functionName : functionList ) { CheckMenuItem newFuctionCheck = new CheckMenuItem ( functionName ) ; newFuctionCheck . setSelected ( true ) ; analysisMenu . getItems ( ) . add ( newFuctionCheck ) ; Button newBtn = new Button ( functionName ) ; newBtn . setTooltip ( new Tooltip ( functionName ) ) ; newBtn . setPrefHeight ( 40 ) ; newBtn . setStyle ( "-fx-font-size:<seq2seq4repair_space>16;" ) ; functionHBox . getChildren ( ) . add ( newBtn ) ; if ( functionName . equals ( "" ) ) { newBtn . setOnMouseClicked ( new EventHandler < MouseEvent > ( ) { @ Override public void handle ( MouseEvent event ) { if ( ( dbController . getDeviceID ( ) ) != ( - 1 ) ) { } else { Label noDevice = new Label ( "No<seq2seq4repair_space>device<seq2seq4repair_space>has<seq2seq4repair_space>been<seq2seq4repair_space>chosen." ) ; MainResultPane . setContent ( noDevice ) ; } updateProgress ( ( "Current<seq2seq4repair_space>selected<seq2seq4repair_space>tool:<seq2seq4repair_space>" + functionName ) ) ; } } ) ; } else { Plugin pl = pm . getPluginWithName ( functionName ) ; if ( pl != null ) { newBtn . setOnMouseClicked ( new EventHandler < MouseEvent > ( ) { @ Override public void handle ( MouseEvent event ) { if ( ( dbController . getDeviceID ( ) ) != ( - 1 ) ) { <START_BUG> System . out . println ( ( "[set<seq2seq4repair_space>event]" + ( pl . getClass ( ) . getName ( ) ) ) ) ; <END_BUG> List params = new ArrayList ( ) ; params . add ( ( ( DBController ) ( dbController ) ) ) ; pl . setParameter ( params ) ; addPluginView ( pl ) ; } else { Label noDevice = new Label ( "No<seq2seq4repair_space>device<seq2seq4repair_space>has<seq2seq4repair_space>been<seq2seq4repair_space>chosen." ) ; MainResultPane . setContent ( noDevice ) ; } updateProgress ( ( "Current<seq2seq4repair_space>selected<seq2seq4repair_space>tool:<seq2seq4repair_space>" + functionName ) ) ; } } ) ; } } newFuctionCheck . setOnAction ( ( event ) -> { if ( newFuctionCheck . isSelected ( ) ) { functionHBox . getChildren ( ) . add ( newBtn ) ; } else { functionHBox . getChildren ( ) . remove ( newBtn ) ; } } ) ; } openProject . setOnAction ( new EventHandler < ActionEvent > ( ) { @ Override public void handle ( ActionEvent event ) { FileChooser projFileChooser = new FileChooser ( ) ; projFileChooser . setTitle ( "Select<seq2seq4repair_space>Project<seq2seq4repair_space>File" ) ; projFileChooser . getExtensionFilters ( ) . addAll ( new FileChooser . ExtensionFilter ( "XML<seq2seq4repair_space>Files" , "*.xml" ) ) ; File projFile = projFileChooser . showOpenDialog ( null ) ; if ( projFile != null ) { System . out . println ( projFile . getName ( ) ) ; currentProject = projm . readProjectFile ( projFile . getAbsolutePath ( ) ) ; pm . setAllPluginMarkedItems ( currentProject . getMarkedItems ( ) ) ; refreshCase ( currentProject . getDeviceID ( ) ) ; } else System . out . println ( "No<seq2seq4repair_space>project<seq2seq4repair_space>file<seq2seq4repair_space>chosen" ) ; } } ) ; saveProject . setOnAction ( new EventHandler < ActionEvent > ( ) { @ Override public void handle ( ActionEvent event ) { Project p = projm . getProject ( ) ; if ( ( p . getProjectPath ( ) ) == null ) { FileChooser projFileChooser = new FileChooser ( ) ; projFileChooser . setTitle ( "Save<seq2seq4repair_space>Project<seq2seq4repair_space>File<seq2seq4repair_space>As" ) ; projFileChooser . getExtensionFilters ( ) . addAll ( new FileChooser . ExtensionFilter ( "XML<seq2seq4repair_space>Files" , "*.xml" ) ) ; File projFile = projFileChooser . showSaveDialog ( null ) ; if ( projFile != null ) { projm . writeProjectFile ( projFile . getAbsolutePath ( ) , pm . getAllPluginMarkedItems ( ) ) ; } else { System . out . println ( "no<seq2seq4repair_space>save<seq2seq4repair_space>file<seq2seq4repair_space>path<seq2seq4repair_space>specified" ) ; } } else { projm . writeProjectFile ( null , pm . getAllPluginMarkedItems ( ) ) ; } } } ) ; saveAsProject . setOnAction ( new EventHandler < ActionEvent > ( ) { @ Override public void handle ( ActionEvent event ) { FileChooser projFileChooser = new FileChooser ( ) ; projFileChooser . setTitle ( "Save<seq2seq4repair_space>Project<seq2seq4repair_space>File<seq2seq4repair_space>As" ) ; projFileChooser . getExtensionFilters ( ) . addAll ( new FileChooser . ExtensionFilter ( "XML<seq2seq4repair_space>Files" , "*.xml" ) ) ; File projFile = projFileChooser . showSaveDialog ( null ) ; if ( projFile != null ) { projm . writeProjectFile ( projFile . getAbsolutePath ( ) , pm . getAllPluginMarkedItems ( ) ) ; }

Fix:
System . out . println ( ( "[set<seq2seq4repair_space>view]" + ( pl . getClass ( ) . getName ( ) ) ) ) ;