Program: 19642
Project: 19642
Buggy source:
public static IntMap buildIntMap(String line,Minecart cart){
  log.info("String_Node_Str" + line + "String_Node_Str");
  String temp="String_Node_Str";
  IntMap map=new IntMap();
  boolean isNegate=false;
  for (int b=0; b < line.length(); b++) {
    char c=line.charAt(b);
    if (Character.isDigit(c)) {
      temp+=c;
      continue;
    }
    if (b == 0) {
      if (line.length() >= 2 && line.charAt(1) == '+') {
        Direction d=Direction.getHorizontalDirection(cart.getVelocity());
switch (c) {
case 'n':
          if (d != Direction.NORTH) {
            return null;
          }
        break;
case 's':
      if (d != Direction.SOUTH) {
        return null;
      }
    break;
case 'e':
  if (d != Direction.EAST) {
    return null;
  }
break;
case 'w':
if (d != Direction.WEST) {
return null;
}
break;
}
b=1;
continue;
}
}
switch (c) {
case ' ':
case ':':
String[] tempsplit=temp.split("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
if (tempsplit.length >= 2 && tempsplit.length % 2 == 0) {
try {
int start=Integer.parseInt(tempsplit[0]);
int end=Integer.parseInt(tempsplit[1]);
Bukkit.getServer().broadcastMessage("String_Node_Str" + start + "String_Node_Str"+ end+ "String_Node_Str"+ isNegate);
map.setRange(start,(byte)0,start,(byte)0,0,isNegate);
break;
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
}
tempsplit=temp.split("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
if (tempsplit.length >= 2) {
try {
int id=Integer.parseInt(tempsplit[0]);
byte datavalue=Byte.parseByte(tempsplit[1]);
Bukkit.getServer().broadcastMessage("String_Node_Str" + id + "String_Node_Str"+ datavalue+ "String_Node_Str"+ isNegate);
map.setInt(id,datavalue,0,isNegate);
break;
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
}
tempsplit=temp.split("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
if (tempsplit.length >= 2) {
try {
int id=Integer.parseInt(tempsplit[0]);
int amount=Integer.parseInt(tempsplit[1]);
Bukkit.getServer().broadcastMessage("String_Node_Str" + id + "String_Node_Str"+ amount+ "String_Node_Str"+ isNegate);
map.setInt(id,(byte)0,amount,isNegate);
break;
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
}
Bukkit.getServer().broadcastMessage("String_Node_Str");
try {
int id=Integer.parseInt(temp);
Bukkit.getServer().broadcastMessage("String_Node_Str" + id + "String_Node_Str"+ isNegate);
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
isNegate=false;
temp="String_Node_Str";
break;
case ';':
temp+="String_Node_Str";
break;
case '@':
temp+="String_Node_Str";
break;
case '-':
temp+="String_Node_Str";
break;
case '!':
isNegate=true;
break;
default :
break;
}
}
return map;
}

Fixed version (ground truth):
public static IntMap buildIntMap(String line,Minecart cart,Direction d){
  log.info("String_Node_Str" + line + "String_Node_Str");
  String temp="String_Node_Str";
  IntMap map=new IntMap();
  boolean isNegate=false;
  for (int b=0; b < line.length(); b++) {
    char c=line.charAt(b);
    if (Character.isDigit(c)) {
      temp+=c;
      continue;
    }
    if (b == 0) {
      if (line.length() >= 2 && line.charAt(1) == '+') {
switch (c) {
case 'n':
          if (d != Direction.NORTH) {
            return null;
          }
        break;
case 's':
      if (d != Direction.SOUTH) {
        return null;
      }
    break;
case 'e':
  if (d != Direction.EAST) {
    return null;
  }
break;
case 'w':
if (d != Direction.WEST) {
return null;
}
break;
}
b=1;
continue;
}
}
switch (c) {
case ' ':
case ':':
String[] tempsplit=temp.split("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
if (tempsplit.length >= 2 && tempsplit.length % 2 == 0) {
try {
int start=Integer.parseInt(tempsplit[0]);
int end=Integer.parseInt(tempsplit[1]);
Bukkit.getServer().broadcastMessage("String_Node_Str" + start + "String_Node_Str"+ end+ "String_Node_Str"+ isNegate);
map.setRange(start,(byte)0,start,(byte)0,0,isNegate);
break;
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
}
tempsplit=temp.split("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
if (tempsplit.length >= 2) {
try {
int id=Integer.parseInt(tempsplit[0]);
byte datavalue=Byte.parseByte(tempsplit[1]);
Bukkit.getServer().broadcastMessage("String_Node_Str" + id + "String_Node_Str"+ datavalue+ "String_Node_Str"+ isNegate);
map.setInt(id,datavalue,0,isNegate);
break;
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
}
tempsplit=temp.split("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
if (tempsplit.length >= 2) {
try {
int id=Integer.parseInt(tempsplit[0]);
int amount=Integer.parseInt(tempsplit[1]);
Bukkit.getServer().broadcastMessage("String_Node_Str" + id + "String_Node_Str"+ amount+ "String_Node_Str"+ isNegate);
map.setInt(id,(byte)0,amount,isNegate);
break;
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
}
Bukkit.getServer().broadcastMessage("String_Node_Str");
try {
int id=Integer.parseInt(temp);
Bukkit.getServer().broadcastMessage("String_Node_Str" + id + "String_Node_Str"+ isNegate);
}
 catch (NumberFormatException e) {
log.severe("String_Node_Str");
Bukkit.getServer().broadcastMessage("String_Node_Str");
return null;
}
isNegate=false;
temp="String_Node_Str";
break;
case ';':
temp+="String_Node_Str";
break;
case '@':
temp+="String_Node_Str";
break;
case '-':
temp+="String_Node_Str";
break;
case '!':
isNegate=true;
break;
default :
break;
}
}
return map;
}