Program: 174018
Project: 174018
Buggy source:
public static List<String> parseLine(String line){
  List<String> args=new ArrayList<>();
  if (line.length() == 0 || line.equals("String_Node_Str"))   return args;
  char[] ary=line.toCharArray();
  StringBuilder s=new StringBuilder();
  boolean dq=false, q=false;
  for (int i=0; i < ary.length; i++) {
    char c=ary[i];
switch (c) {
case ' ':
      if (dq || q)       s.append(' ');
 else       if (s.length() > 0) {
        args.add(s.toString());
        s.setLength(0);
      }
    break;
case '"':
  if (!dq && !q) {
    dq=true;
  }
 else   if (q) {
    s.append('"');
  }
 else {
    args.add(s.toString());
    s.setLength(0);
    dq=false;
    if (i + 1 < ary.length && ary[i + 1] != ' ')     throw new UnsupportedOperationException("String_Node_Str");
  }
break;
case '\'':
if (!dq && !q) {
q=true;
}
 else if (dq) {
s.append('\'');
}
 else {
args.add(s.toString());
s.setLength(0);
q=false;
if (i + 1 < ary.length && ary[i + 1] != ' ') throw new UnsupportedOperationException("String_Node_Str");
}
break;
case '\\':
if (!dq) s.append('\\');
 else {
i++;
if (i < ary.length) {
switch (ary[i]) {
case 'n':
s.append('\n');
break;
case 'r':
s.append('\r');
break;
case 't':
s.append('\t');
break;
case 'b':
s.append('\b');
break;
case 'f':
s.append('\f');
break;
case 'x':
if (i + 2 >= ary.length) s.append("String_Node_Str");
 else {
char high=ary[++i];
char low=ary[++i];
try {
s.append(parseInt(new String(new char[]{high,low}),16));
}
 catch (Exception e) {
s.append("String_Node_Str");
s.append(high);
s.append(low);
}
}
break;
default :
s.append(ary[i]);
break;
}
}
}
break;
default :
s.append(c);
break;
}
}
if (dq || q) throw new UnsupportedOperationException("String_Node_Str" + line + "String_Node_Str");
if (s.length() > 0) args.add(s.toString());
return args;
}

Fixed version (ground truth):
public static List<String> parseLine(String line){
  List<String> args=new ArrayList<>();
  if (line.length() == 0 || line.equals("String_Node_Str"))   return args;
  char[] ary=line.toCharArray();
  StringBuilder s=new StringBuilder();
  boolean dq=false, q=false;
  for (int i=0; i < ary.length; i++) {
    char c=ary[i];
switch (c) {
case ' ':
      if (dq || q)       s.append(' ');
 else       if (s.length() > 0) {
        args.add(s.toString());
        s.setLength(0);
      }
    break;
case '"':
  if (!dq && !q) {
    dq=true;
  }
 else   if (q) {
    s.append('"');
  }
 else {
    args.add(s.toString());
    s.setLength(0);
    dq=false;
    if (i + 1 < ary.length && ary[i + 1] != ' ')     throw new UnsupportedOperationException("String_Node_Str");
  }
break;
case '\'':
if (!dq && !q) {
q=true;
}
 else if (dq) {
s.append('\'');
}
 else {
args.add(s.toString());
s.setLength(0);
q=false;
if (i + 1 < ary.length && ary[i + 1] != ' ') throw new UnsupportedOperationException("String_Node_Str");
}
break;
case '\\':
if (!dq) s.append('\\');
 else {
i++;
if (i < ary.length) {
switch (ary[i]) {
case 'n':
s.append('\n');
break;
case 'r':
s.append('\r');
break;
case 't':
s.append('\t');
break;
case 'b':
s.append('\b');
break;
case 'f':
s.append('\f');
break;
case 'a':
s.append((byte)7);
break;
case 'x':
if (i + 2 >= ary.length) s.append("String_Node_Str");
 else {
char high=ary[++i];
char low=ary[++i];
try {
s.append(parseInt(new String(new char[]{high,low}),16));
}
 catch (Exception e) {
s.append("String_Node_Str");
s.append(high);
s.append(low);
}
}
break;
default :
s.append(ary[i]);
break;
}
}
}
break;
default :
s.append(c);
break;
}
}
if (dq || q) throw new UnsupportedOperationException("String_Node_Str" + line + "String_Node_Str");
if (s.length() > 0) args.add(s.toString());
return args;
}