Program: 79727
Project: 79727
Buggy source:
@Override public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks){
  callbacks.setExtensionName("String_Node_Str");
  this.callbacks=callbacks;
  this.helpers=callbacks.getHelpers();
  stdout=new PrintWriter(callbacks.getStdout(),true);
  stderr=new PrintWriter(callbacks.getStderr(),true);
  try {
    Class.forName("String_Node_Str");
    canSaveCSV=true;
  }
 catch (  ClassNotFoundException e) {
    stderr.println("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
  }
  loggerPreferences=new LoggerPreferences(stdout,stderr,isDebug);
  if (loggerPreferences.getColorFilters() == null)   loggerPreferences.setColorFilters(new HashMap<UUID,ColorFilter>());
  this.filterListeners=new ArrayList<FilterListener>();
  this.filterListeners.add(this);
  this.isDebug=loggerPreferences.isDebugMode();
  requestViewer=callbacks.createMessageEditor(BurpExtender.this,false);
  responseViewer=callbacks.createMessageEditor(BurpExtender.this,false);
  logTable=new Table(log,requestViewer,responseViewer,helpers,loggerPreferences,loggerPreferences.getColorFilters(),stdout,stderr,isDebug);
  optionsJPanel=new LoggerOptionsPanel(callbacks,stdout,stderr,logTable,log,canSaveCSV,loggerPreferences,isDebug);
  aboutJPanel=new AboutPanel(callbacks,stdout,stderr,loggerPreferences,isDebug);
  SwingUtilities.invokeLater(new Runnable(){
    @Override public void run(){
      mainUI=new JTabbedPane(){
        @Override public void removeNotify(){
          super.removeNotify();
          if (loggerMenu != null) {
            loggerMenu.getParent().remove(loggerMenu);
          }
        }
      }
;
      logViewJPanelWrapper=new JPanel(new BorderLayout());
      logViewSplit=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
      logViewTabbed=new JTabbedPane();
      logTablePanel=new JPanel(new GridBagLayout());
      JScrollPane logTableScrollPane=new JScrollPane(logTable,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      logTableScrollBar=logTableScrollPane.getVerticalScrollBar();
      GridBagConstraints gbc=new GridBagConstraints();
      gbc.weighty=1;
      gbc.gridy=0;
      gbc.fill=GridBagConstraints.BOTH;
      gbc.weightx=1;
      logTablePanel.add(getFilterPanel(),gbc);
      gbc.weighty=999;
      gbc.gridy=1;
      logTablePanel.add(logTableScrollPane,gbc);
      logViewSplit.setBottomComponent(reqRespTabbedPane);
      logViewSplit.setResizeWeight(0.5);
      reqRespTabbedPane=new JTabbedPane();
      reqRespTabbedPane.addTab("String_Node_Str",requestViewer.getComponent());
      reqRespTabbedPane.addTab("String_Node_Str",responseViewer.getComponent());
      reqRespSplitPane=new JSplitPane();
      reqRespSplitPane.setResizeWeight(0.5);
      logViewTabbed.addTab("String_Node_Str",logTablePanel);
      logViewTabbed.addTab("String_Node_Str",reqRespSplitPane);
      setLayout(loggerPreferences.getView());
      mainUI.addTab("String_Node_Str",null,logViewJPanelWrapper,null);
      mainUI.addTab("String_Node_Str",null,optionsJPanel,null);
      mainUI.addTab("String_Node_Str",null,aboutJPanel,null);
      callbacks.addSuiteTab(BurpExtender.this);
      callbacks.registerHttpListener(BurpExtender.this);
      callbacks.registerProxyListener(BurpExtender.this);
      JFrame rootFrame=(JFrame)SwingUtilities.getWindowAncestor(mainUI);
      try {
        JMenuBar menuBar=rootFrame.getJMenuBar();
        loggerMenu=new JMenu(getTabCaption());
        JMenuItem colorFilters=new JMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            colorFilterDialog.setVisible(true);
          }
        }
);
        loggerMenu.add(colorFilters);
        JMenu viewMenu=new JMenu("String_Node_Str");
        ButtonGroup bGroup=new ButtonGroup();
        JRadioButtonMenuItem viewMenuItem=new JRadioButtonMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            setLayout(LoggerPreferences.View.VERTICAL);
          }
        }
);
        viewMenuItem.setSelected(loggerPreferences.getView() == LoggerPreferences.View.VERTICAL);
        viewMenu.add(viewMenuItem);
        bGroup.add(viewMenuItem);
        viewMenuItem=new JRadioButtonMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            setLayout(LoggerPreferences.View.HORIZONTAL);
          }
        }
);
        viewMenu.add(viewMenuItem);
        bGroup.add(viewMenuItem);
        viewMenuItem=new JRadioButtonMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            setLayout(LoggerPreferences.View.TABS);
          }
        }
);
        viewMenu.add(viewMenuItem);
        bGroup.add(viewMenuItem);
        loggerMenu.add(viewMenu);
        menuBar.add(loggerMenu,menuBar.getMenuCount() - 1);
      }
 catch (      NullPointerException nPException) {
        loggerMenu=null;
      }
    }
  }
);
  if (!callbacks.isExtensionBapp() && loggerPreferences.checkUpdatesOnStartup()) {
    aboutJPanel.checkForUpdate(false);
  }
}

Fixed version (ground truth):
@Override public void registerExtenderCallbacks(final IBurpExtenderCallbacks callbacks){
  this.instance=this;
  callbacks.setExtensionName("String_Node_Str");
  this.callbacks=callbacks;
  this.helpers=callbacks.getHelpers();
  stdout=new PrintWriter(callbacks.getStdout(),true);
  stderr=new PrintWriter(callbacks.getStderr(),true);
  try {
    Class.forName("String_Node_Str");
    canSaveCSV=true;
  }
 catch (  ClassNotFoundException e) {
    stderr.println("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
  }
  loggerPreferences=new LoggerPreferences(stdout,stderr,isDebug);
  if (loggerPreferences.getColorFilters() == null)   loggerPreferences.setColorFilters(new HashMap<UUID,ColorFilter>());
  this.filterListeners=new ArrayList<FilterListener>();
  this.filterListeners.add(this);
  this.isDebug=loggerPreferences.isDebugMode();
  requestViewer=callbacks.createMessageEditor(BurpExtender.this,false);
  responseViewer=callbacks.createMessageEditor(BurpExtender.this,false);
  logTable=new LogTable(log,stdout,stderr,isDebug);
  optionsJPanel=new LoggerOptionsPanel(callbacks,stdout,stderr,logTable,log,canSaveCSV,loggerPreferences,isDebug);
  aboutJPanel=new AboutPanel(callbacks,stdout,stderr,loggerPreferences,isDebug);
  SwingUtilities.invokeLater(new Runnable(){
    @Override public void run(){
      mainUI=new JTabbedPane(){
        @Override public void removeNotify(){
          super.removeNotify();
          if (loggerMenu != null) {
            loggerMenu.getParent().remove(loggerMenu);
          }
        }
      }
;
      logViewJPanelWrapper=new JPanel(new BorderLayout());
      logViewSplit=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
      logViewTabbed=new JTabbedPane();
      logTablePanel=new JPanel(new GridBagLayout());
      JScrollPane logTableScrollPane=new JScrollPane(logTable,ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      logTableScrollBar=logTableScrollPane.getVerticalScrollBar();
      GridBagConstraints gbc=new GridBagConstraints();
      gbc.weighty=1;
      gbc.gridy=0;
      gbc.fill=GridBagConstraints.BOTH;
      gbc.weightx=1;
      logTablePanel.add(getFilterPanel(),gbc);
      gbc.weighty=999;
      gbc.gridy=1;
      logTablePanel.add(logTableScrollPane,gbc);
      logViewSplit.setBottomComponent(reqRespTabbedPane);
      logViewSplit.setResizeWeight(0.5);
      reqRespTabbedPane=new JTabbedPane();
      reqRespTabbedPane.addTab("String_Node_Str",requestViewer.getComponent());
      reqRespTabbedPane.addTab("String_Node_Str",responseViewer.getComponent());
      reqRespSplitPane=new JSplitPane();
      reqRespSplitPane.setResizeWeight(0.5);
      logViewTabbed.addTab("String_Node_Str",logTablePanel);
      logViewTabbed.addTab("String_Node_Str",reqRespSplitPane);
      setLayout(loggerPreferences.getView());
      mainUI.addTab("String_Node_Str",null,logViewJPanelWrapper,null);
      mainUI.addTab("String_Node_Str",null,optionsJPanel,null);
      mainUI.addTab("String_Node_Str",null,aboutJPanel,null);
      callbacks.addSuiteTab(BurpExtender.this);
      callbacks.registerHttpListener(BurpExtender.this);
      callbacks.registerProxyListener(BurpExtender.this);
      JFrame rootFrame=(JFrame)SwingUtilities.getWindowAncestor(mainUI);
      try {
        JMenuBar menuBar=rootFrame.getJMenuBar();
        loggerMenu=new JMenu(getTabCaption());
        JMenuItem colorFilters=new JMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            colorFilterDialog.setVisible(true);
          }
        }
);
        loggerMenu.add(colorFilters);
        JMenu viewMenu=new JMenu("String_Node_Str");
        ButtonGroup bGroup=new ButtonGroup();
        JRadioButtonMenuItem viewMenuItem=new JRadioButtonMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            setLayout(LoggerPreferences.View.VERTICAL);
          }
        }
);
        viewMenuItem.setSelected(loggerPreferences.getView() == LoggerPreferences.View.VERTICAL);
        viewMenu.add(viewMenuItem);
        bGroup.add(viewMenuItem);
        viewMenuItem=new JRadioButtonMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            setLayout(LoggerPreferences.View.HORIZONTAL);
          }
        }
);
        viewMenu.add(viewMenuItem);
        bGroup.add(viewMenuItem);
        viewMenuItem=new JRadioButtonMenuItem(new AbstractAction("String_Node_Str"){
          @Override public void actionPerformed(          ActionEvent actionEvent){
            setLayout(LoggerPreferences.View.TABS);
          }
        }
);
        viewMenu.add(viewMenuItem);
        bGroup.add(viewMenuItem);
        loggerMenu.add(viewMenu);
        menuBar.add(loggerMenu,menuBar.getMenuCount() - 1);
      }
 catch (      NullPointerException nPException) {
        loggerMenu=null;
      }
    }
  }
);
  if (!callbacks.isExtensionBapp() && loggerPreferences.checkUpdatesOnStartup()) {
    aboutJPanel.checkForUpdate(false);
  }
}