Program: 151649
Project: 151649
Buggy source:
@DefaultCommand public void listCommands(@Option(name="String_Node_Str",shortName="String_Node_Str",flagOnly=true) boolean showAll){
  List<String> listData;
  Map<String,List<String>> listGroups=new TreeMap<String,List<String>>();
  Class currResource=shell.getCurrentResource().getClass();
  for (  List<PluginMetadata> lpm : registry.getPlugins().values()) {
    for (    PluginMetadata pluginMetadata : lpm) {
      if (!listGroups.containsKey(pluginMetadata.getTopic())) {
        listGroups.put(pluginMetadata.getTopic(),listData=new ArrayList<String>());
      }
 else {
        listData=listGroups.get(pluginMetadata.getTopic());
      }
      for (      CommandMetadata commandMetadata : pluginMetadata.getAllCommands()) {
        String name=render(showAll,currResource,commandMetadata);
        if (name.endsWith("String_Node_Str")) {
          listData.remove(name.substring(0,name.length() - 1));
        }
        if (!"String_Node_Str".equals(name))         listData.add(name);
      }
      if (!listGroups.containsKey(pluginMetadata.getTopic())) {
        listGroups.put(pluginMetadata.getTopic(),listData);
      }
    }
  }
  GeneralUtils.OutputAttributes attr=null;
  for (  Map.Entry<String,List<String>> entry : listGroups.entrySet()) {
    attr=GeneralUtils.calculateOutputAttributs(entry.getValue(),shell,attr);
  }
  for (  Map.Entry<String,List<String>> entry : listGroups.entrySet()) {
    shell.println();
    shell.println(ShellColor.BLUE,"String_Node_Str" + entry.getKey().toUpperCase() + "String_Node_Str");
    printOutColumns(entry.getValue(),null,ShellColor.BOLD,shell,attr,true);
  }
  shell.println();
  if (showAll)   shell.println("String_Node_Str");
 else   shell.println("String_Node_Str");
}

Fixed version (ground truth):
@DefaultCommand public void listCommands(@Option(name="String_Node_Str",shortName="String_Node_Str",flagOnly=true) boolean showAll){
  List<String> listData;
  Map<String,List<String>> listGroups=new TreeMap<String,List<String>>();
  Class currResource=shell.getCurrentResource().getClass();
  for (  List<PluginMetadata> lpm : registry.getPlugins().values()) {
    for (    PluginMetadata pluginMetadata : lpm) {
      if (!listGroups.containsKey(pluginMetadata.getTopic())) {
        listGroups.put(pluginMetadata.getTopic(),listData=new ArrayList<String>());
      }
 else {
        listData=listGroups.get(pluginMetadata.getTopic());
      }
      for (      CommandMetadata commandMetadata : pluginMetadata.getAllCommands()) {
        String name=render(showAll,currResource,commandMetadata);
        if (name.endsWith("String_Node_Str")) {
          listData.remove(name.substring(0,name.length() - 1));
        }
        listData.remove(name);
        if (!"String_Node_Str".equals(name))         listData.add(name);
      }
      if (!listGroups.containsKey(pluginMetadata.getTopic())) {
        listGroups.put(pluginMetadata.getTopic(),listData);
      }
    }
  }
  GeneralUtils.OutputAttributes attr=null;
  for (  Map.Entry<String,List<String>> entry : listGroups.entrySet()) {
    attr=GeneralUtils.calculateOutputAttributs(entry.getValue(),shell,attr);
  }
  for (  Map.Entry<String,List<String>> entry : listGroups.entrySet()) {
    shell.println();
    shell.println(ShellColor.BLUE,"String_Node_Str" + entry.getKey().toUpperCase() + "String_Node_Str");
    printOutColumns(entry.getValue(),null,ShellColor.BOLD,shell,attr,true);
  }
  shell.println();
  if (showAll)   shell.println("String_Node_Str");
 else   shell.println("String_Node_Str");
}