Program: 4428
Project: 4428
Buggy source:
/** 
 * Determines whether or not the given IOException can can be ignored. Visit http://www.dte.net/winsock_error.htm for explanations of each code/message. Most of these have no meaning when applied to UDP, but it doesn't hurt to check for ones that aren't harmful. Depending on the version of Java or the OS, the error may either be "Datagram send failed (code=<code>)" or simply the text of the error.
 */
private boolean isIgnoreable(Throwable ex,final String message){
  if ("String_Node_Str".equals(ex.getClass().getName()))   return true;
  if (message == null)   return false;
  final String msg=message.toLowerCase();
  if (scan(msg,10013,"String_Node_Str"))   return true;
  if (scan(msg,10049,"String_Node_Str"))   return true;
  if (scan(msg,10053,"String_Node_Str"))   return true;
  if (scan(msg,10054,"String_Node_Str"))   return true;
  if (scan(msg,10061,"String_Node_Str"))   return true;
  if (scan(msg,10064,"String_Node_Str"))   return true;
  if (scan(msg,10065,"String_Node_Str"))   return true;
  if (scan(msg,10004,"String_Node_Str"))   return true;
  if (scan(msg,10050,"String_Node_Str"))   return true;
  if (scan(msg,10052,"String_Node_Str"))   return true;
  if (scan(msg,10051,"String_Node_Str"))   return true;
  if (scan(msg,10055,"String_Node_Str"))   return true;
  if (scan(msg,10060,"String_Node_Str"))   return true;
  if (scan(msg,10035,"String_Node_Str"))   return true;
  if (scan(msg,11001,"String_Node_Str"))   return true;
  if (scan(msg,10091,"String_Node_Str"))   return true;
  if (scan(msg,10107,null))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (msg.indexOf("String_Node_Str") > -1)   return true;
  return false;
}

Fixed version (ground truth):
/** 
 * Determines whether or not the given IOException can can be ignored. Visit http://www.dte.net/winsock_error.htm for explanations of each code/message. Most of these have no meaning when applied to UDP, but it doesn't hurt to check for ones that aren't harmful. Depending on the version of Java or the OS, the error may either be "Datagram send failed (code=<code>)" or simply the text of the error.
 */
private boolean isIgnoreable(Throwable ex,final String message){
  if ("String_Node_Str".equals(ex.getClass().getName()))   return true;
  if (message == null)   return false;
  final String msg=message.toLowerCase();
  if (scan(msg,1784,"String_Node_Str"))   return true;
  if (scan(msg,10004,"String_Node_Str"))   return true;
  if (scan(msg,10013,"String_Node_Str"))   return true;
  if (scan(msg,10022,"String_Node_Str"))   return true;
  if (scan(msg,10035,"String_Node_Str"))   return true;
  if (scan(msg,10038,"String_Node_Str"))   return true;
  if (scan(msg,10049,"String_Node_Str"))   return true;
  if (scan(msg,10050,"String_Node_Str"))   return true;
  if (scan(msg,10051,"String_Node_Str"))   return true;
  if (scan(msg,10052,"String_Node_Str"))   return true;
  if (scan(msg,10053,"String_Node_Str"))   return true;
  if (scan(msg,10054,"String_Node_Str"))   return true;
  if (scan(msg,10055,"String_Node_Str"))   return true;
  if (scan(msg,10060,"String_Node_Str"))   return true;
  if (scan(msg,10061,"String_Node_Str"))   return true;
  if (scan(msg,10064,"String_Node_Str"))   return true;
  if (scan(msg,10065,"String_Node_Str"))   return true;
  if (scan(msg,10091,"String_Node_Str"))   return true;
  if (scan(msg,10107,null))   return true;
  if (scan(msg,11001,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (scan(msg,-1,"String_Node_Str"))   return true;
  if (msg.indexOf("String_Node_Str") > -1)   return true;
  return false;
}