Program: 94774
Project: 94774
Buggy source:
private void send(ID fromID,ID roomID,String target,String msg){
  if (isProcessed(roomID,target,msg)) {
    return;
  }
  Matcher cmdMatcher=null;
  Enumeration keys=commands.keys();
  while (keys.hasMoreElements()) {
    String key=(String)keys.nextElement();
    Pattern pattern=Pattern.compile(key);
    cmdMatcher=pattern.matcher(msg);
    if (cmdMatcher.matches()) {
      break;
    }
  }
  if (cmdMatcher != null && cmdMatcher.matches()) {
    if (cmdMatcher.group(1).equals("String_Node_Str")) {
      if (operators.contains(fromID.getName())) {
        learn(roomID,cmdMatcher.group(2));
      }
 else {
        sendMessage(roomID,NLS.bind(CustomMessages.getString(CustomMessages.No_Operation_Privileges),fromID.getName()));
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      if (operators.contains(fromID.getName())) {
        update(roomID,cmdMatcher.group(2));
      }
 else {
        sendMessage(roomID,NLS.bind(CustomMessages.getString(CustomMessages.No_Operation_Privileges),fromID.getName()));
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      if (operators.contains(fromID.getName())) {
        remove(roomID,cmdMatcher.group(2));
      }
 else {
        sendMessage(roomID,NLS.bind(CustomMessages.getString(CustomMessages.No_Operation_Privileges),fromID.getName()));
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str")) {
      msg=cmdMatcher.group(2);
      int index=msg.indexOf('c');
      if (index == -1) {
        try {
          Integer.parseInt(msg);
          sendBug(roomID,target,msg,null);
        }
 catch (        NumberFormatException e) {
        }
      }
 else {
        try {
          Integer.parseInt(msg.substring(0,index));
          sendBug(roomID,target,msg.substring(0,index),msg.substring(index + 1));
        }
 catch (        NumberFormatException e) {
        }
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str")) {
      sendJavaDoc(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str")) {
      sendNewsgroupSearch(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendGoogle(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendWiki(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendEclipseHelp(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendMessageList(roomID,target);
    }
  }
}

Fixed version (ground truth):
private void send(ID fromID,ID roomID,String target,String msg){
  if (isProcessed(roomID,target,msg)) {
    return;
  }
  Matcher cmdMatcher=null;
  Enumeration keys=commands.keys();
  while (keys.hasMoreElements()) {
    String key=(String)keys.nextElement();
    Pattern pattern=Pattern.compile(key);
    cmdMatcher=pattern.matcher(msg);
    if (cmdMatcher.matches()) {
      break;
    }
  }
  if (cmdMatcher != null && cmdMatcher.matches()) {
    if (cmdMatcher.group(1).equals("String_Node_Str")) {
      if (operators.contains(fromID.getName())) {
        learn(roomID,cmdMatcher.group(2));
      }
 else {
        sendMessage(roomID,NLS.bind(CustomMessages.getString(CustomMessages.No_Operation_Privileges),fromID.getName()));
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str")) {
      if (operators.contains(fromID.getName())) {
        update(roomID,cmdMatcher.group(2));
      }
 else {
        sendMessage(roomID,NLS.bind(CustomMessages.getString(CustomMessages.No_Operation_Privileges),fromID.getName()));
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      if (operators.contains(fromID.getName())) {
        remove(roomID,cmdMatcher.group(2));
      }
 else {
        sendMessage(roomID,NLS.bind(CustomMessages.getString(CustomMessages.No_Operation_Privileges),fromID.getName()));
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str")) {
      msg=cmdMatcher.group(2);
      int index=msg.indexOf('c');
      if (index == -1) {
        try {
          Integer.parseInt(msg);
          sendBug(roomID,target,msg,null);
        }
 catch (        NumberFormatException e) {
        }
      }
 else {
        try {
          Integer.parseInt(msg.substring(0,index));
          sendBug(roomID,target,msg.substring(0,index),msg.substring(index + 1));
        }
 catch (        NumberFormatException e) {
        }
      }
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str")) {
      sendJavaDoc(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str") || cmdMatcher.group(1).equals("String_Node_Str")) {
      sendNewsgroupSearch(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendGoogle(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendWiki(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendEclipseHelp(roomID,target,cmdMatcher.group(2));
    }
 else     if (cmdMatcher.group(1).equals("String_Node_Str")) {
      sendMessageList(roomID,target);
    }
  }
}