Program: 117059
Project: 117059
Buggy source:
@OnWebSocketMessage public void onMessage(Session session,String text){
  if (qz == null)   qz=new PrintApplet();
  System.out.println("String_Node_Str" + text);
  int space=text.indexOf(' ');
  if (space > 0) {
    String command=text.substring(0,space);
    if ("String_Node_Str".equals(command)) {
      qz.isActive();
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
      qz.isActive();
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
 else     if ("String_Node_Str".equals(command)) {
    }
  }
}

Fixed version (ground truth):
@OnWebSocketMessage public String onMessage(Session session,String text){
  if (text == null)   return "String_Node_Str";
  if (qz == null) {
    qz=new PrintApplet();
    qz.init();
    qz.start();
  }
  System.out.println("String_Node_Str" + text);
  if (text.startsWith("String_Node_Str")) {
    if (methods == null) {
      methods=new TreeSet<String>();
    }
    try {
      Class c=PrintApplet.class;
      Method[] m=c.getDeclaredMethods();
      for (      Method method : m) {
        if (method.getModifiers() == 1 && method.getDeclaringClass() == PrintApplet.class) {
          String name=method.getName();
          if (!name.equals("String_Node_Str") && !name.equals("String_Node_Str") && !name.equals("String_Node_Str")&& !name.equals("String_Node_Str")&& !name.equals("String_Node_Str")&& !name.equals("String_Node_Str")&& !name.equals("String_Node_Str")) {
            methods.add(method.getName() + "String_Node_Str" + method.getReturnType()+ "String_Node_Str"+ method.getParameterTypes().length);
          }
        }
      }
    }
 catch (    Exception ex) {
      ex.printStackTrace();
    }
    if (methods == null)     return "String_Node_Str";
    return StringUtils.join(methods,"String_Node_Str");
  }
 else {
    String[] parts=text.split("String_Node_Str");
    String name=parts[0];
    int params=Integer.valueOf(parts.length - 1);
    try {
      Method[] m=PrintApplet.class.getMethods();
      Method method=null;
      for (      Method mm : m) {
        System.out.println(name + "String_Node_Str" + params+ "String_Node_Str"+ mm.getName()+ "String_Node_Str"+ mm.getParameterTypes().length);
        if (mm.getName().equals(name) && params == mm.getParameterTypes().length) {
          method=mm;
        }
      }
      String result="String_Node_Str";
      if (method != null) {
        Object[] obj=new Object[params];
        for (int x=1; x < params + 1; x++) {
          obj[x - 1]=covertType(parts[x],method.getParameterTypes()[x - 1]);
        }
switch (params) {
case 0:
          result=String.valueOf(method.invoke(qz));
        break;
case 1:
      result=String.valueOf(method.invoke(qz,obj[0]));
    break;
case 2:
  result=String.valueOf(method.invoke(qz,obj[0],obj[1]));
break;
case 3:
result=String.valueOf(method.invoke(qz,obj[0],obj[1],obj[2]));
break;
case 4:
result=String.valueOf(method.invoke(qz,obj[0],obj[1],obj[2],obj[3]));
break;
case 5:
result=String.valueOf(method.invoke(qz,obj[0],obj[1],obj[2],obj[3],obj[5]));
break;
default :
result="String_Node_Str";
}
}
 else {
return "String_Node_Str";
}
return "String_Node_Str" + result;
}
 catch (Exception ex) {
ex.printStackTrace();
}
}
return "String_Node_Str";
}