Program: 68996
Project: 68996
Buggy source:
@Override public void actionPerformed(java.awt.event.ActionEvent e){
  boolean configured=ConfigurationDialogs.show(view,getDialogMode());
  boolean makeReqs=true;
  boolean completed=false;
  java.util.List<String> nodes=new ArrayList<>();
  if (configured) {
    if (BurpPropertiesManager.getBurpPropertiesManager().getConfigFile() != null)     callbacks.loadConfigFromJson(getBurpConfigAsString());
    try {
      EndpointDecorator[] endpoints=getEndpoints(view);
      EndpointDecorator[] comparePoints=null;
      if (BurpPropertiesManager.getBurpPropertiesManager().getOldSourceFolder() != null && !BurpPropertiesManager.getBurpPropertiesManager().getOldSourceFolder().trim().isEmpty() && mode == 0)       comparePoints=getComparePoints(view);
 else       if (BurpPropertiesManager.getBurpPropertiesManager().getOldSerializationFile() != null && !BurpPropertiesManager.getBurpPropertiesManager().getOldSerializationFile().trim().isEmpty() && mode == 1)       comparePoints=getComparePoints(view);
      if (endpoints.length == 0)       JOptionPane.showMessageDialog(view,getNoEndpointsMessage(),"String_Node_Str",JOptionPane.WARNING_MESSAGE);
 else {
        if (comparePoints != null && comparePoints.length != 0)         endpoints=compareEndpoints(endpoints,comparePoints,view);
        fillEndpointsToTable(endpoints);
        for (        EndpointDecorator decorator : endpoints) {
          if (decorator != null) {
            Endpoint.Info endpoint=decorator.getEndpoint();
            String endpointPath=endpoint.getUrlPath();
            if (endpointPath.startsWith("String_Node_Str"))             endpointPath=endpointPath.substring(1);
            endpointPath=endpointPath.replaceAll(GENERIC_INT_SEGMENT,"String_Node_Str");
            nodes.add(endpointPath);
            for (            Map.Entry<String,RouteParameter> parameter : endpoint.getParameters().entrySet())             nodes.add(endpointPath + "String_Node_Str" + parameter.getKey()+ "String_Node_Str"+ parameter.getValue());
          }
        }
        String url=UrlDialog.show(view);
        if (url != null) {
          try {
            if (!url.substring(url.length() - 1).equals("String_Node_Str"))             url=url + "String_Node_Str";
            for (            String node : nodes) {
              URL nodeUrl=new URL(url + node);
              callbacks.includeInScope(nodeUrl);
              if (BurpPropertiesManager.getBurpPropertiesManager().getAutoSpider())               callbacks.sendToSpider(nodeUrl);
            }
            buildRequests(view,callbacks,endpoints,url);
            completed=true;
          }
 catch (          MalformedURLException e1) {
            JOptionPane.showMessageDialog(view,"String_Node_Str","String_Node_Str",JOptionPane.WARNING_MESSAGE);
          }
          if (completed)           JOptionPane.showMessageDialog(view,getCompletedMessage());
        }
 else         makeReqs=false;
      }
      if (makeReqs) {
        if (BurpPropertiesManager.getBurpPropertiesManager().getAutoScan())         sendToScanner(callbacks,UrlDialog.show(view));
        RequestMakerThread rmt=new RequestMakerThread(callbacks,view);
        new Thread(rmt).start();
      }
    }
 catch (    Exception ex) {
      JOptionPane.showMessageDialog(view,"String_Node_Str");
    }
  }
 else   JOptionPane.showMessageDialog(view,"String_Node_Str","String_Node_Str",JOptionPane.WARNING_MESSAGE);
}

Fixed version (ground truth):
@Override public void actionPerformed(java.awt.event.ActionEvent e){
  boolean configured=false;
  if (mode == 0)   configured=ConfigurationDialogs.showSource(view,getDialogMode());
 else   if (mode == 1)   configured=ConfigurationDialogs.showJson(view,getDialogMode());
  boolean makeReqs=true;
  boolean completed=false;
  java.util.List<String> nodes=new ArrayList<>();
  if (configured) {
    if (BurpPropertiesManager.getBurpPropertiesManager().getConfigFile() != null)     callbacks.loadConfigFromJson(getBurpConfigAsString());
    try {
      EndpointDecorator[] endpoints=getEndpoints(view);
      EndpointDecorator[] comparePoints=null;
      if (BurpPropertiesManager.getBurpPropertiesManager().getOldSourceFolder() != null && !BurpPropertiesManager.getBurpPropertiesManager().getOldSourceFolder().trim().isEmpty() && mode == 0)       comparePoints=getComparePoints(view);
 else       if (BurpPropertiesManager.getBurpPropertiesManager().getOldSerializationFile() != null && !BurpPropertiesManager.getBurpPropertiesManager().getOldSerializationFile().trim().isEmpty() && mode == 1)       comparePoints=getComparePoints(view);
      if (endpoints.length == 0)       JOptionPane.showMessageDialog(view,getNoEndpointsMessage(),"String_Node_Str",JOptionPane.WARNING_MESSAGE);
 else {
        if (comparePoints != null && comparePoints.length != 0)         endpoints=compareEndpoints(endpoints,comparePoints,view);
        fillEndpointsToTable(endpoints);
        for (        EndpointDecorator decorator : endpoints) {
          if (decorator != null) {
            Endpoint.Info endpoint=decorator.getEndpoint();
            String endpointPath=endpoint.getUrlPath();
            if (endpointPath.startsWith("String_Node_Str"))             endpointPath=endpointPath.substring(1);
            endpointPath=endpointPath.replaceAll(GENERIC_INT_SEGMENT,"String_Node_Str");
            nodes.add(endpointPath);
            for (            Map.Entry<String,RouteParameter> parameter : endpoint.getParameters().entrySet())             nodes.add(endpointPath + "String_Node_Str" + parameter.getKey()+ "String_Node_Str"+ parameter.getValue());
          }
        }
        String url=UrlDialog.show(view);
        if (url != null) {
          try {
            if (!url.substring(url.length() - 1).equals("String_Node_Str"))             url=url + "String_Node_Str";
            for (            String node : nodes) {
              URL nodeUrl=new URL(url + node);
              callbacks.includeInScope(nodeUrl);
              if (BurpPropertiesManager.getBurpPropertiesManager().getAutoSpider())               callbacks.sendToSpider(nodeUrl);
            }
            buildRequests(view,callbacks,endpoints,url);
            completed=true;
          }
 catch (          MalformedURLException e1) {
            JOptionPane.showMessageDialog(view,"String_Node_Str","String_Node_Str",JOptionPane.WARNING_MESSAGE);
          }
          if (completed)           JOptionPane.showMessageDialog(view,getCompletedMessage());
        }
 else         makeReqs=false;
      }
      if (makeReqs) {
        if (BurpPropertiesManager.getBurpPropertiesManager().getAutoScan())         sendToScanner(callbacks,UrlDialog.show(view));
        RequestMakerThread rmt=new RequestMakerThread(callbacks,view);
        new Thread(rmt).start();
      }
    }
 catch (    Exception ex) {
      JOptionPane.showMessageDialog(view,"String_Node_Str");
    }
  }
 else   JOptionPane.showMessageDialog(view,"String_Node_Str","String_Node_Str",JOptionPane.WARNING_MESSAGE);
}