Program: 170712
Project: 170712
Buggy source:
public void actionPerformed(ActionEvent event){
  String command=event.getActionCommand();
  if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        executeMethodInsertedArgumentList.addElement(executeMethodArgument.getText().trim());
        executeMethodArgument.setText("String_Node_Str");
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        int index=executeMethodInsertedArgument.getSelectedIndex();
        if (index != -1) {
          executeMethodInsertedArgumentList.remove(index);
        }
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        int index=executeMethodInsertedArgument.getSelectedIndex();
        if (index != -1) {
          executeMethodArgument.setText((String)executeMethodInsertedArgument.getSelectedValue());
          executeMethodInsertedArgumentList.remove(index);
        }
      }
    }
);
  }
 else   if (command.equals("String_Node_Str") && serverStarted) {
    try {
      pyroBridaService.call("String_Node_Str",applicationId.getText().trim(),fridaPath.getText().trim(),remoteRadioButton.isSelected());
      applicationSpawned=true;
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          applicationStatus.setText("String_Node_Str");
          applicationStatusButtons.setText("String_Node_Str");
          List<TrapTableItem> trapEntries=((TrapTableModel)(trapTable.getModel())).getTrappedMethods();
synchronized (trapEntries) {
            int trapEntryOldSize=trapEntries.size();
            if (trapEntryOldSize > 0) {
              trapEntries.clear();
              ((TrapTableModel)(trapTable.getModel())).fireTableRowsDeleted(0,trapEntryOldSize - 1);
            }
          }
          try {
            documentApplicationStatus.insertString(0,"String_Node_Str",greenStyle);
            documentApplicationStatusButtons.insertString(0,"String_Node_Str",greenStyle);
          }
 catch (          BadLocationException e) {
            printException(e,"String_Node_Str");
          }
        }
      }
);
      printSuccessMessage("String_Node_Str" + applicationId.getText().trim() + "String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
    try {
      platform=(int)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{}));
      if (platform == BurpExtender.PLATFORM_ANDROID) {
        printSuccessMessage("String_Node_Str");
      }
 else       if (platform == BurpExtender.PLATFORM_IOS) {
        printSuccessMessage("String_Node_Str");
      }
 else {
        printSuccessMessage("String_Node_Str");
      }
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && serverStarted && applicationSpawned) {
    try {
      pyroBridaService.call("String_Node_Str");
      printSuccessMessage("String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && serverStarted && applicationSpawned) {
    try {
      pyroBridaService.call("String_Node_Str");
      applicationSpawned=false;
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          applicationStatus.setText("String_Node_Str");
          applicationStatusButtons.setText("String_Node_Str");
          try {
            documentApplicationStatus.insertString(0,"String_Node_Str",redStyle);
            documentApplicationStatusButtons.insertString(0,"String_Node_Str",redStyle);
          }
 catch (          BadLocationException e) {
            printException(e,"String_Node_Str");
          }
        }
      }
);
      printSuccessMessage("String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && serverStarted) {
    stdoutThread.stop();
    stderrThread.stop();
    try {
      pyroBridaService.call("String_Node_Str");
      pyroServerProcess.destroy();
      pyroBridaService.close();
      serverStarted=false;
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          serverStatus.setText("String_Node_Str");
          serverStatusButtons.setText("String_Node_Str");
          try {
            documentServerStatus.insertString(0,"String_Node_Str",redStyle);
            documentServerStatusButtons.insertString(0,"String_Node_Str",redStyle);
          }
 catch (          BadLocationException e) {
            printException(e,"String_Node_Str");
          }
        }
      }
);
      printSuccessMessage("String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && !serverStarted) {
    savePersistentSettings();
    try {
      final String startPyroServerResult=launchPyroServer(pythonPath.getText().trim(),pythonScript);
      if (startPyroServerResult.trim().equals("String_Node_Str")) {
        pyroBridaService=new PyroProxy(new PyroURI("String_Node_Str" + pyroHost.getText().trim() + "String_Node_Str"+ pyroPort.getText().trim()));
        serverStarted=true;
        SwingUtilities.invokeLater(new Runnable(){
          @Override public void run(){
            serverStatus.setText("String_Node_Str");
            serverStatusButtons.setText("String_Node_Str");
            try {
              documentServerStatus.insertString(0,"String_Node_Str",greenStyle);
              documentServerStatusButtons.insertString(0,"String_Node_Str",greenStyle);
            }
 catch (            BadLocationException e) {
              printException(e,"String_Node_Str");
            }
          }
        }
);
        printSuccessMessage("String_Node_Str");
      }
 else {
        if (!(startPyroServerResult.trim().equals("String_Node_Str"))) {
          printException(null,"String_Node_Str");
          printException(null,startPyroServerResult.trim());
        }
        return;
      }
    }
 catch (    final Exception e) {
      printException(null,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    savePersistentSettings();
    try {
      String[] arguments=new String[executeMethodInsertedArgumentList.size()];
      for (int i=0; i < executeMethodInsertedArgumentList.size(); i++) {
        arguments[i]=(String)(executeMethodInsertedArgumentList.getElementAt(i));
      }
      final String s=(String)(pyroBridaService.call("String_Node_Str",executeMethodName.getText().trim(),arguments));
      printJSMessage("String_Node_Str" + executeMethodName.getText().trim() + "String_Node_Str");
      printJSMessage(s);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        stubTextEditor.setText(generateJavaStub().getBytes());
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        stubTextEditor.setText(generatePythonStub().getBytes());
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    exportConfigurationsToFile();
  }
 else   if (command.equals("String_Node_Str")) {
    loadConfigurationsFromFile();
  }
 else   if (command.equals("String_Node_Str")) {
    File jsFile=new File(fridaPath.getText().trim());
    byte[] jsFileContent=null;
    try {
      jsFileContent=Files.readAllBytes(jsFile.toPath());
    }
 catch (    IOException e) {
      printException(e,"String_Node_Str");
    }
    final byte[] test=jsFileContent;
    if (jsFileContent != null) {
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          jsEditorTextArea.setText(new String(test));
        }
      }
);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    File jsFile=new File(fridaPath.getText().trim());
    try {
      Files.write(jsFile.toPath(),jsEditorTextArea.getText().getBytes(),StandardOpenOption.WRITE);
    }
 catch (    IOException e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") || command.equals("String_Node_Str")) {
    IHttpRequestResponse[] selectedItems=currentInvocation.getSelectedMessages();
    int[] selectedBounds=currentInvocation.getSelectionBounds();
    byte selectedInvocationContext=currentInvocation.getInvocationContext();
    try {
      byte[] selectedRequestOrResponse=null;
      if (selectedInvocationContext == IContextMenuInvocation.CONTEXT_MESSAGE_EDITOR_REQUEST) {
        selectedRequestOrResponse=selectedItems[0].getRequest();
      }
 else {
        selectedRequestOrResponse=selectedItems[0].getResponse();
      }
      byte[] preSelectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,0,selectedBounds[0]);
      byte[] selectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,selectedBounds[0],selectedBounds[1]);
      byte[] postSelectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,selectedBounds[1],selectedRequestOrResponse.length);
      String s=(String)(pyroBridaService.call("String_Node_Str",command,new String[]{byteArrayToHexString(selectedPortion)}));
      byte[] newRequest=ArrayUtils.addAll(preSelectedPortion,hexStringToByteArray(s));
      newRequest=ArrayUtils.addAll(newRequest,postSelectedPortion);
      selectedItems[0].setRequest(newRequest);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    try {
      ArrayList<String> allClasses=(ArrayList<String>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[0]));
      HashMap<String,Integer> allModules=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[0]));
      Collections.sort(allClasses,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      ArrayList<String> moduleNames=new ArrayList<String>(allModules.keySet());
      Collections.sort(moduleNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      DefaultTreeModel model=(DefaultTreeModel)tree.getModel();
      DefaultMutableTreeNode newRoot=new DefaultMutableTreeNode("String_Node_Str");
      DefaultMutableTreeNode currentNode;
      if (platform == BurpExtender.PLATFORM_ANDROID || platform == BurpExtender.PLATFORM_IOS) {
        DefaultMutableTreeNode objNode=(platform == BurpExtender.PLATFORM_ANDROID ? new DefaultMutableTreeNode("String_Node_Str") : new DefaultMutableTreeNode("String_Node_Str"));
        for (int i=0; i < allClasses.size(); i++) {
          currentNode=new DefaultMutableTreeNode(allClasses.get(i));
          objNode.add(currentNode);
        }
        newRoot.add(objNode);
      }
      DefaultMutableTreeNode modulesNode=new DefaultMutableTreeNode("String_Node_Str");
      for (int i=0; i < moduleNames.size(); i++) {
        currentNode=new DefaultMutableTreeNode(moduleNames.get(i));
        modulesNode.add(currentNode);
      }
      newRoot.add(modulesNode);
      model.setRoot(newRoot);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    String toSearch=findTextField.getText().trim();
    HashMap<String,Integer> foundObjcMethods=null;
    if (platform == BurpExtender.PLATFORM_IOS) {
      try {
        foundObjcMethods=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{toSearch}));
      }
 catch (      Exception e) {
        printException(e,"String_Node_Str");
        return;
      }
    }
    HashMap<String,Integer> foundImports=null;
    try {
      foundImports=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{toSearch}));
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
      return;
    }
    HashMap<String,Integer> foundExports=null;
    try {
      foundExports=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{toSearch}));
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
      return;
    }
    printJSMessage("String_Node_Str" + findTextField.getText().trim());
    if (foundObjcMethods != null) {
      ArrayList<String> objcMethodNames=new ArrayList<String>(foundObjcMethods.keySet());
      Collections.sort(objcMethodNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      Iterator<String> currentClassMethodsIterator=objcMethodNames.iterator();
      String currentMethodName;
      while (currentClassMethodsIterator.hasNext()) {
        currentMethodName=currentClassMethodsIterator.next();
        printJSMessage("String_Node_Str" + currentMethodName);
      }
    }
    if (foundImports != null) {
      ArrayList<String> importNames=new ArrayList<String>(foundImports.keySet());
      Collections.sort(importNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      Iterator<String> currentImportIterator=importNames.iterator();
      String currentImportName;
      while (currentImportIterator.hasNext()) {
        currentImportName=currentImportIterator.next();
        printJSMessage("String_Node_Str" + currentImportName);
      }
    }
    if (foundExports != null) {
      ArrayList<String> exportNames=new ArrayList<String>(foundExports.keySet());
      Collections.sort(exportNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      Iterator<String> exportIterator=exportNames.iterator();
      String currentExportName;
      while (exportIterator.hasNext()) {
        currentExportName=exportIterator.next();
        printJSMessage("String_Node_Str" + currentExportName);
      }
    }
  }
 else   if (command.equals("String_Node_Str")) {
    trap(false);
  }
 else   if (command.equals("String_Node_Str")) {
    int dialogButton=JOptionPane.YES_NO_OPTION;
    int dialogResult=JOptionPane.showConfirmDialog(mainPanel,"String_Node_Str","String_Node_Str",dialogButton);
    if (dialogResult == 0) {
      try {
        pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{});
      }
 catch (      Exception e) {
        printException(e,"String_Node_Str");
        return;
      }
      List<TrapTableItem> trapEntries=((TrapTableModel)(trapTable.getModel())).getTrappedMethods();
synchronized (trapEntries) {
        int trapEntryOldSize=trapEntries.size();
        if (trapEntryOldSize > 0) {
          trapEntries.clear();
          ((TrapTableModel)(trapTable.getModel())).fireTableRowsDeleted(0,trapEntryOldSize - 1);
        }
      }
      printSuccessMessage("String_Node_Str");
    }
 else {
      printSuccessMessage("String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    trap(true);
  }
 else   if (command.equals("String_Node_Str") || command.equals("String_Node_Str")) {
    IHttpRequestResponse[] selectedItems=currentInvocation.getSelectedMessages();
    int[] selectedBounds=currentInvocation.getSelectionBounds();
    byte selectedInvocationContext=currentInvocation.getInvocationContext();
    try {
      byte[] selectedRequestOrResponse=null;
      if (selectedInvocationContext == IContextMenuInvocation.CONTEXT_MESSAGE_VIEWER_REQUEST) {
        selectedRequestOrResponse=selectedItems[0].getRequest();
      }
 else {
        selectedRequestOrResponse=selectedItems[0].getResponse();
      }
      byte[] selectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,selectedBounds[0],selectedBounds[1]);
      final String s=(String)(pyroBridaService.call("String_Node_Str",command,new String[]{byteArrayToHexString(selectedPortion)}));
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          JTextArea ta=new JTextArea(10,10);
          ta.setText(new String(hexStringToByteArray(s)));
          ta.setWrapStyleWord(true);
          ta.setLineWrap(true);
          ta.setCaretPosition(0);
          ta.setEditable(false);
          JOptionPane.showMessageDialog(null,new JScrollPane(ta),"String_Node_Str",JOptionPane.INFORMATION_MESSAGE);
        }
      }
);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    JFrame parentFrame=new JFrame();
    JFileChooser fileChooser=new JFileChooser();
    fileChooser.setDialogTitle("String_Node_Str");
    int userSelection=fileChooser.showOpenDialog(parentFrame);
    if (userSelection == JFileChooser.APPROVE_OPTION) {
      final File pythonPathFile=fileChooser.getSelectedFile();
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          pythonPath.setText(pythonPathFile.getAbsolutePath());
        }
      }
);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    JFrame parentFrame=new JFrame();
    JFileChooser fileChooser=new JFileChooser();
    fileChooser.setDialogTitle("String_Node_Str");
    int userSelection=fileChooser.showOpenDialog(parentFrame);
    if (userSelection == JFileChooser.APPROVE_OPTION) {
      final File fridaPathFile=fileChooser.getSelectedFile();
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          fridaPath.setText(fridaPathFile.getAbsolutePath());
        }
      }
);
    }
  }
 else   if (command.startsWith("String_Node_Str")) {
    Pattern p=Pattern.compile("String_Node_Str",Pattern.DOTALL);
    Matcher m=p.matcher(command);
    String changeType=null;
    if (m.find()) {
      changeType=m.group(1);
    }
    if (changeType != null) {
      String dialogResult=JOptionPane.showInputDialog(mainPanel,"String_Node_Str" + changeType + "String_Node_Str","String_Node_Str",JOptionPane.QUESTION_MESSAGE);
      changeReturnValue(changeType,dialogResult);
    }
  }
 else   if (command.startsWith("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        String newConsoleText="String_Node_Str";
        newConsoleText=newConsoleText + "String_Node_Str";
        newConsoleText=newConsoleText + "String_Node_Str";
        pluginConsoleTextArea.setText(newConsoleText);
      }
    }
);
  }
}

Fixed version (ground truth):
public void actionPerformed(ActionEvent event){
  String command=event.getActionCommand();
  if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        executeMethodInsertedArgumentList.addElement(executeMethodArgument.getText().trim());
        executeMethodArgument.setText("String_Node_Str");
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        int index=executeMethodInsertedArgument.getSelectedIndex();
        if (index != -1) {
          executeMethodInsertedArgumentList.remove(index);
        }
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        int index=executeMethodInsertedArgument.getSelectedIndex();
        if (index != -1) {
          executeMethodArgument.setText((String)executeMethodInsertedArgument.getSelectedValue());
          executeMethodInsertedArgumentList.remove(index);
        }
      }
    }
);
  }
 else   if (command.equals("String_Node_Str") && serverStarted) {
    try {
      pyroBridaService.call("String_Node_Str",applicationId.getText().trim(),fridaPath.getText().trim(),remoteRadioButton.isSelected());
      applicationSpawned=true;
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          applicationStatus.setText("String_Node_Str");
          applicationStatusButtons.setText("String_Node_Str");
          List<TrapTableItem> trapEntries=((TrapTableModel)(trapTable.getModel())).getTrappedMethods();
synchronized (trapEntries) {
            int trapEntryOldSize=trapEntries.size();
            if (trapEntryOldSize > 0) {
              trapEntries.clear();
              ((TrapTableModel)(trapTable.getModel())).fireTableRowsDeleted(0,trapEntryOldSize - 1);
            }
          }
          try {
            documentApplicationStatus.insertString(0,"String_Node_Str",greenStyle);
            documentApplicationStatusButtons.insertString(0,"String_Node_Str",greenStyle);
          }
 catch (          BadLocationException e) {
            printException(e,"String_Node_Str");
          }
        }
      }
);
      printSuccessMessage("String_Node_Str" + applicationId.getText().trim() + "String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
    try {
      platform=(int)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{}));
      if (platform == BurpExtender.PLATFORM_ANDROID) {
        printSuccessMessage("String_Node_Str");
      }
 else       if (platform == BurpExtender.PLATFORM_IOS) {
        printSuccessMessage("String_Node_Str");
      }
 else {
        printSuccessMessage("String_Node_Str");
      }
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && serverStarted && applicationSpawned) {
    try {
      pyroBridaService.call("String_Node_Str");
      printSuccessMessage("String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && serverStarted && applicationSpawned) {
    try {
      pyroBridaService.call("String_Node_Str");
      applicationSpawned=false;
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          applicationStatus.setText("String_Node_Str");
          applicationStatusButtons.setText("String_Node_Str");
          try {
            documentApplicationStatus.insertString(0,"String_Node_Str",redStyle);
            documentApplicationStatusButtons.insertString(0,"String_Node_Str",redStyle);
          }
 catch (          BadLocationException e) {
            printException(e,"String_Node_Str");
          }
        }
      }
);
      printSuccessMessage("String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && serverStarted) {
    stdoutThread.stop();
    stderrThread.stop();
    try {
      pyroBridaService.call("String_Node_Str");
      pyroServerProcess.destroy();
      pyroBridaService.close();
      serverStarted=false;
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          serverStatus.setText("String_Node_Str");
          serverStatusButtons.setText("String_Node_Str");
          try {
            documentServerStatus.insertString(0,"String_Node_Str",redStyle);
            documentServerStatusButtons.insertString(0,"String_Node_Str",redStyle);
          }
 catch (          BadLocationException e) {
            printException(e,"String_Node_Str");
          }
        }
      }
);
      printSuccessMessage("String_Node_Str");
    }
 catch (    final Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") && !serverStarted) {
    savePersistentSettings();
    try {
      final String startPyroServerResult=launchPyroServer(pythonPath.getText().trim(),pythonScript);
      if (startPyroServerResult.trim().equals("String_Node_Str")) {
        pyroBridaService=new PyroProxy(new PyroURI("String_Node_Str" + pyroHost.getText().trim() + "String_Node_Str"+ pyroPort.getText().trim()));
        serverStarted=true;
        SwingUtilities.invokeLater(new Runnable(){
          @Override public void run(){
            serverStatus.setText("String_Node_Str");
            serverStatusButtons.setText("String_Node_Str");
            try {
              documentServerStatus.insertString(0,"String_Node_Str",greenStyle);
              documentServerStatusButtons.insertString(0,"String_Node_Str",greenStyle);
            }
 catch (            BadLocationException e) {
              printException(e,"String_Node_Str");
            }
          }
        }
);
        printSuccessMessage("String_Node_Str");
      }
 else {
        if (!(startPyroServerResult.trim().equals("String_Node_Str"))) {
          printException(null,"String_Node_Str");
          printException(null,startPyroServerResult.trim());
        }
        return;
      }
    }
 catch (    final Exception e) {
      printException(null,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    savePersistentSettings();
    try {
      String[] arguments=new String[executeMethodInsertedArgumentList.size()];
      for (int i=0; i < executeMethodInsertedArgumentList.size(); i++) {
        arguments[i]=(String)(executeMethodInsertedArgumentList.getElementAt(i));
      }
      final String s=(String)(pyroBridaService.call("String_Node_Str",executeMethodName.getText().trim(),arguments));
      printJSMessage("String_Node_Str" + executeMethodName.getText().trim() + "String_Node_Str");
      printJSMessage(s);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        stubTextEditor.setText(generateJavaStub().getBytes());
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        stubTextEditor.setText(generatePythonStub().getBytes());
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    exportConfigurationsToFile();
  }
 else   if (command.equals("String_Node_Str")) {
    loadConfigurationsFromFile();
  }
 else   if (command.equals("String_Node_Str")) {
    File jsFile=new File(fridaPath.getText().trim());
    final FileLocation fl=FileLocation.create(jsFile);
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        try {
          jsEditorTextArea.load(fl,null);
        }
 catch (        IOException e) {
          printException(e,"String_Node_Str");
        }
      }
    }
);
  }
 else   if (command.equals("String_Node_Str")) {
    try {
      jsEditorTextArea.save();
    }
 catch (    IOException e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str") || command.equals("String_Node_Str")) {
    IHttpRequestResponse[] selectedItems=currentInvocation.getSelectedMessages();
    int[] selectedBounds=currentInvocation.getSelectionBounds();
    byte selectedInvocationContext=currentInvocation.getInvocationContext();
    try {
      byte[] selectedRequestOrResponse=null;
      if (selectedInvocationContext == IContextMenuInvocation.CONTEXT_MESSAGE_EDITOR_REQUEST) {
        selectedRequestOrResponse=selectedItems[0].getRequest();
      }
 else {
        selectedRequestOrResponse=selectedItems[0].getResponse();
      }
      byte[] preSelectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,0,selectedBounds[0]);
      byte[] selectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,selectedBounds[0],selectedBounds[1]);
      byte[] postSelectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,selectedBounds[1],selectedRequestOrResponse.length);
      String s=(String)(pyroBridaService.call("String_Node_Str",command,new String[]{byteArrayToHexString(selectedPortion)}));
      byte[] newRequest=ArrayUtils.addAll(preSelectedPortion,hexStringToByteArray(s));
      newRequest=ArrayUtils.addAll(newRequest,postSelectedPortion);
      selectedItems[0].setRequest(newRequest);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    try {
      ArrayList<String> allClasses=(ArrayList<String>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[0]));
      HashMap<String,Integer> allModules=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[0]));
      Collections.sort(allClasses,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      ArrayList<String> moduleNames=new ArrayList<String>(allModules.keySet());
      Collections.sort(moduleNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      DefaultTreeModel model=(DefaultTreeModel)tree.getModel();
      DefaultMutableTreeNode newRoot=new DefaultMutableTreeNode("String_Node_Str");
      DefaultMutableTreeNode currentNode;
      if (platform == BurpExtender.PLATFORM_ANDROID || platform == BurpExtender.PLATFORM_IOS) {
        DefaultMutableTreeNode objNode=(platform == BurpExtender.PLATFORM_ANDROID ? new DefaultMutableTreeNode("String_Node_Str") : new DefaultMutableTreeNode("String_Node_Str"));
        for (int i=0; i < allClasses.size(); i++) {
          currentNode=new DefaultMutableTreeNode(allClasses.get(i));
          objNode.add(currentNode);
        }
        newRoot.add(objNode);
      }
      DefaultMutableTreeNode modulesNode=new DefaultMutableTreeNode("String_Node_Str");
      for (int i=0; i < moduleNames.size(); i++) {
        currentNode=new DefaultMutableTreeNode(moduleNames.get(i));
        modulesNode.add(currentNode);
      }
      newRoot.add(modulesNode);
      model.setRoot(newRoot);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    String toSearch=findTextField.getText().trim();
    HashMap<String,Integer> foundObjcMethods=null;
    if (platform == BurpExtender.PLATFORM_IOS) {
      try {
        foundObjcMethods=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{toSearch}));
      }
 catch (      Exception e) {
        printException(e,"String_Node_Str");
        return;
      }
    }
    HashMap<String,Integer> foundImports=null;
    try {
      foundImports=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{toSearch}));
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
      return;
    }
    HashMap<String,Integer> foundExports=null;
    try {
      foundExports=(HashMap<String,Integer>)(pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{toSearch}));
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
      return;
    }
    printJSMessage("String_Node_Str" + findTextField.getText().trim());
    if (foundObjcMethods != null) {
      ArrayList<String> objcMethodNames=new ArrayList<String>(foundObjcMethods.keySet());
      Collections.sort(objcMethodNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      Iterator<String> currentClassMethodsIterator=objcMethodNames.iterator();
      String currentMethodName;
      while (currentClassMethodsIterator.hasNext()) {
        currentMethodName=currentClassMethodsIterator.next();
        printJSMessage("String_Node_Str" + currentMethodName);
      }
    }
    if (foundImports != null) {
      ArrayList<String> importNames=new ArrayList<String>(foundImports.keySet());
      Collections.sort(importNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      Iterator<String> currentImportIterator=importNames.iterator();
      String currentImportName;
      while (currentImportIterator.hasNext()) {
        currentImportName=currentImportIterator.next();
        printJSMessage("String_Node_Str" + currentImportName);
      }
    }
    if (foundExports != null) {
      ArrayList<String> exportNames=new ArrayList<String>(foundExports.keySet());
      Collections.sort(exportNames,new Comparator<String>(){
        @Override public int compare(        String class1,        String class2){
          return class1.compareToIgnoreCase(class2);
        }
      }
);
      Iterator<String> exportIterator=exportNames.iterator();
      String currentExportName;
      while (exportIterator.hasNext()) {
        currentExportName=exportIterator.next();
        printJSMessage("String_Node_Str" + currentExportName);
      }
    }
  }
 else   if (command.equals("String_Node_Str")) {
    trap(false);
  }
 else   if (command.equals("String_Node_Str")) {
    int dialogButton=JOptionPane.YES_NO_OPTION;
    int dialogResult=JOptionPane.showConfirmDialog(mainPanel,"String_Node_Str","String_Node_Str",dialogButton);
    if (dialogResult == 0) {
      try {
        pyroBridaService.call("String_Node_Str","String_Node_Str",new String[]{});
      }
 catch (      Exception e) {
        printException(e,"String_Node_Str");
        return;
      }
      List<TrapTableItem> trapEntries=((TrapTableModel)(trapTable.getModel())).getTrappedMethods();
synchronized (trapEntries) {
        int trapEntryOldSize=trapEntries.size();
        if (trapEntryOldSize > 0) {
          trapEntries.clear();
          ((TrapTableModel)(trapTable.getModel())).fireTableRowsDeleted(0,trapEntryOldSize - 1);
        }
      }
      printSuccessMessage("String_Node_Str");
    }
 else {
      printSuccessMessage("String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    trap(true);
  }
 else   if (command.equals("String_Node_Str") || command.equals("String_Node_Str")) {
    IHttpRequestResponse[] selectedItems=currentInvocation.getSelectedMessages();
    int[] selectedBounds=currentInvocation.getSelectionBounds();
    byte selectedInvocationContext=currentInvocation.getInvocationContext();
    try {
      byte[] selectedRequestOrResponse=null;
      if (selectedInvocationContext == IContextMenuInvocation.CONTEXT_MESSAGE_VIEWER_REQUEST) {
        selectedRequestOrResponse=selectedItems[0].getRequest();
      }
 else {
        selectedRequestOrResponse=selectedItems[0].getResponse();
      }
      byte[] selectedPortion=Arrays.copyOfRange(selectedRequestOrResponse,selectedBounds[0],selectedBounds[1]);
      final String s=(String)(pyroBridaService.call("String_Node_Str",command,new String[]{byteArrayToHexString(selectedPortion)}));
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          JTextArea ta=new JTextArea(10,10);
          ta.setText(new String(hexStringToByteArray(s)));
          ta.setWrapStyleWord(true);
          ta.setLineWrap(true);
          ta.setCaretPosition(0);
          ta.setEditable(false);
          JOptionPane.showMessageDialog(null,new JScrollPane(ta),"String_Node_Str",JOptionPane.INFORMATION_MESSAGE);
        }
      }
);
    }
 catch (    Exception e) {
      printException(e,"String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    JFrame parentFrame=new JFrame();
    JFileChooser fileChooser=new JFileChooser();
    fileChooser.setDialogTitle("String_Node_Str");
    int userSelection=fileChooser.showOpenDialog(parentFrame);
    if (userSelection == JFileChooser.APPROVE_OPTION) {
      final File pythonPathFile=fileChooser.getSelectedFile();
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          pythonPath.setText(pythonPathFile.getAbsolutePath());
        }
      }
);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    JFrame parentFrame=new JFrame();
    JFileChooser fileChooser=new JFileChooser();
    fileChooser.setDialogTitle("String_Node_Str");
    int userSelection=fileChooser.showOpenDialog(parentFrame);
    if (userSelection == JFileChooser.APPROVE_OPTION) {
      final File fridaPathFile=fileChooser.getSelectedFile();
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          fridaPath.setText(fridaPathFile.getAbsolutePath());
        }
      }
);
    }
  }
 else   if (command.startsWith("String_Node_Str")) {
    Pattern p=Pattern.compile("String_Node_Str",Pattern.DOTALL);
    Matcher m=p.matcher(command);
    String changeType=null;
    if (m.find()) {
      changeType=m.group(1);
    }
    if (changeType != null) {
      String dialogResult=JOptionPane.showInputDialog(mainPanel,"String_Node_Str" + changeType + "String_Node_Str","String_Node_Str",JOptionPane.QUESTION_MESSAGE);
      changeReturnValue(changeType,dialogResult);
    }
  }
 else   if (command.startsWith("String_Node_Str")) {
    SwingUtilities.invokeLater(new Runnable(){
      @Override public void run(){
        String newConsoleText="String_Node_Str";
        newConsoleText=newConsoleText + "String_Node_Str";
        newConsoleText=newConsoleText + "String_Node_Str";
        pluginConsoleTextArea.setText(newConsoleText);
      }
    }
);
  }
}