nus-yam/ex-repair huggingface dataset:
Program: 63022
Project: 63022
Buggy source:
@AfterClass public static void classTearDown() throws Exception {
  BrowserInstancePool.release(bi);
  printTestClassFooter("String_Node_Str");
}

Fixed version (ground truth):
@AfterClass public static void classTearDown() throws Exception {
  BrowserInstancePool.release(bi);
  printTestClassFooter();
}
Program: 63023
Project: 63023
Buggy source:
@Test public void testCoordEvalEditUiPaths() throws Exception {
  printTestCaseHeader("String_Node_Str");
  bi.editEvaluation(ts.newEvaluation.startTime,ts.newEvaluation.endTime,ts.newEvaluation.p2pEnabled,ts.newEvaluation.instructions,ts.newEvaluation.gracePeriod);
  bi.waitForStatusMessage(Common.MESSAGE_EVALUATION_EDITED);
  String json=BackDoor.getEvaluationAsJason(ts.newEvaluation.course,ts.newEvaluation.name);
  EvaluationData newEval=Common.getTeammatesGson().fromJson(json,EvaluationData.class);
  assertEquals(ts.newEvaluation.startTime,newEval.startTime);
  assertEquals(ts.newEvaluation.endTime,newEval.endTime);
  assertEquals(ts.newEvaluation.instructions,newEval.instructions);
  assertEquals(ts.newEvaluation.timeZone + "String_Node_Str",newEval.timeZone + "String_Node_Str");
  assertEquals(ts.newEvaluation.gracePeriod,newEval.gracePeriod);
  assertEquals(ts.newEvaluation.p2pEnabled,newEval.p2pEnabled);
}

Fixed version (ground truth):
@Test public void testCoordEvalEditUiPaths() throws Exception {
  printTestCaseHeader();
  bi.editEvaluation(ts.newEvaluation.startTime,ts.newEvaluation.endTime,ts.newEvaluation.p2pEnabled,ts.newEvaluation.instructions,ts.newEvaluation.gracePeriod);
  bi.waitForStatusMessage(Common.MESSAGE_EVALUATION_EDITED);
  String json=BackDoor.getEvaluationAsJason(ts.newEvaluation.course,ts.newEvaluation.name);
  EvaluationData newEval=Common.getTeammatesGson().fromJson(json,EvaluationData.class);
  assertEquals(ts.newEvaluation.startTime,newEval.startTime);
  assertEquals(ts.newEvaluation.endTime,newEval.endTime);
  assertEquals(ts.newEvaluation.instructions,newEval.instructions);
  assertEquals(ts.newEvaluation.timeZone + "String_Node_Str",newEval.timeZone + "String_Node_Str");
  assertEquals(ts.newEvaluation.gracePeriod,newEval.gracePeriod);
  assertEquals(ts.newEvaluation.p2pEnabled,newEval.p2pEnabled);
}
Program: 63024
Project: 63024
Buggy source:
public void createStudent(StudentData studentData) throws EntityAlreadyExistsException, InvalidParametersException {
  if (studentData == null) {
    throw new InvalidParametersException("String_Node_Str");
  }
  Student student=new Student(studentData);
  Courses.inst().createStudent(student);
}

Fixed version (ground truth):
public void createStudent(StudentData studentData) throws EntityAlreadyExistsException, InvalidParametersException {
  if (studentData == null) {
    throw new InvalidParametersException("String_Node_Str");
  }
  Student student=new Student(studentData);
  if (student.getID() == null) {
    student.setID("String_Node_Str");
  }
  Courses.inst().createStudent(student);
}
Program: 63025
Project: 63025
Buggy source:
public void testCoordHomeCoursePageHTML() throws Exception {
  bi.verifyCurrentPageHTML(Common.TEST_PAGES_FOLDER + "String_Node_Str");
  TMAPI.deleteCourse(scn.courses.get("String_Node_Str").id);
  TMAPI.deleteCourse(scn.courses.get("String_Node_Str").id);
  bi.goToCoordHome();
  bi.verifyCurrentPageHTML(Common.TEST_PAGES_FOLDER + "String_Node_Str");
}

Fixed version (ground truth):
public void testCoordHomeCoursePageHTML() throws Exception {
  bi.verifyCurrentPageHTMLRegex(Common.TEST_PAGES_FOLDER + "String_Node_Str");
  TMAPI.deleteCourse(scn.courses.get("String_Node_Str").id);
  TMAPI.deleteCourse(scn.courses.get("String_Node_Str").id);
  bi.goToCoordHome();
  bi.verifyCurrentPageHTML(Common.TEST_PAGES_FOLDER + "String_Node_Str");
}
Program: 63026
Project: 63026
Buggy source:
public void createStudent(StudentData student) throws EntityAlreadyExistsException, InvalidParametersException {
  if (student == null) {
    throw new InvalidParametersException("String_Node_Str");
  }
  Courses.inst().createStudent(new Student(student));
}

Fixed version (ground truth):
public void createStudent(StudentData studentData) throws EntityAlreadyExistsException, InvalidParametersException {
  if (studentData == null) {
    throw new InvalidParametersException("String_Node_Str");
  }
  Student student=new Student(studentData);
  Courses.inst().createStudent(student);
}
Program: 63027
Project: 63027
Buggy source:
private StudentData getStudentWithId(String googleId){
  Student student=Accounts.inst().getStudentWithID(googleId);
  return (student == null ? null : new StudentData(student));
}

Fixed version (ground truth):
public StudentData getStudentWithId(String googleId){
  Student student=Accounts.inst().getStudentWithID(googleId);
  return (student == null ? null : new StudentData(student));
}
Program: 63028
Project: 63028
Buggy source:
public static void validateComment(String comment) throws InvalidParametersException {
  if (comment.length() > COMMENT_MAX_LENGTH) {
    throw new InvalidParametersException(ERRORCODE_STRING_TOO_LONG,"String_Node_Str" + STUDENT_NAME_MAX_LENGTH);
  }
}

Fixed version (ground truth):
public static void validateComment(String comment) throws InvalidParametersException {
  if (comment == null) {
    return;
  }
  if (comment.length() > COMMENT_MAX_LENGTH) {
    throw new InvalidParametersException(ERRORCODE_STRING_TOO_LONG,"String_Node_Str" + STUDENT_NAME_MAX_LENGTH);
  }
}
Program: 63029
Project: 63029
Buggy source:
public static void validateTeamName(String teamName) throws InvalidParametersException {
  if (teamName.length() > TEAM_NAME_MAX_LENGTH) {
    throw new InvalidParametersException(ERRORCODE_STRING_TOO_LONG,"String_Node_Str" + TEAM_NAME_MAX_LENGTH);
  }
}

Fixed version (ground truth):
public static void validateTeamName(String teamName) throws InvalidParametersException {
  if (teamName == null) {
    return;
  }
  if (teamName.length() > TEAM_NAME_MAX_LENGTH) {
    throw new InvalidParametersException(ERRORCODE_STRING_TOO_LONG,"String_Node_Str" + TEAM_NAME_MAX_LENGTH);
  }
}
Program: 63030
Project: 63030
Buggy source:
public Student getStudent(String courseId,String email){
  String query="String_Node_Str" + Student.class.getName() + "String_Node_Str"+ email+ "String_Node_Str"+ "String_Node_Str"+ courseId+ "String_Node_Str";
  @SuppressWarnings("String_Node_Str") List<Student> studentList=(List<Student>)getPM().newQuery(query).execute();
  if (studentList.isEmpty()) {
    log.warning("String_Node_Str" + courseId + "String_Node_Str"+ email);
    return null;
  }
  return studentList.get(0);
}

Fixed version (ground truth):
public Student getStudent(String courseId,String email){
  String query="String_Node_Str" + Student.class.getName() + "String_Node_Str"+ email+ "String_Node_Str"+ "String_Node_Str"+ courseId+ "String_Node_Str";
  @SuppressWarnings("String_Node_Str") List<Student> studentList=(List<Student>)getPM().newQuery(query).execute();
  if (studentList.isEmpty()) {
    log.warning("String_Node_Str" + courseId + "String_Node_Str"+ email);
    return null;
  }
  Student student=studentList.get(0);
  return student;
}
Program: 63031
Project: 63031
Buggy source:
public void editStudent(String courseID,String email,String newName,String newTeamName,String newEmail,String newGoogleID,String newComments,Text newProfile) throws EntityDoesNotExistException {
  Student student=getStudentWithEmail(courseID,email);
  if (student == null)   throw new EntityDoesNotExistException("String_Node_Str" + email + "String_Node_Str"+ courseID);
  student.setComments((newComments));
  student.setEmail(newEmail);
  student.setID(newGoogleID);
  student.setName(newName);
  student.setTeamName(newTeamName);
  student.setProfileDetail(newProfile);
  getPM().close();
}

Fixed version (ground truth):
public void editStudent(String courseID,String email,String newName,String newTeamName,String newEmail,String newGoogleID,String newComments,Text newProfile) throws EntityDoesNotExistException {
  Student student=getStudentWithEmail(courseID,email);
  if (student == null)   throw new EntityDoesNotExistException("String_Node_Str" + email + "String_Node_Str"+ courseID);
  student.setComments(newComments);
  student.setEmail(newEmail);
  if (newGoogleID != null) {
    student.setID(newGoogleID);
  }
  student.setName(newName);
  student.setTeamName(newTeamName);
  if (newProfile != null) {
    student.setProfileDetail(newProfile);
  }
  getPM().close();
}
Program: 63032
Project: 63032
Buggy source:
public Student(String line,String courseId) throws InvalidParametersException {
  int TEAM_POS=0;
  int NAME_POS=1;
  int EMAIL_POS=2;
  int COMMENT_POS=3;
  if ((line == null) || (courseId == null)) {
    throw new InvalidParametersException(Common.ERRORCODE_NULL_PARAMETER,"String_Node_Str");
  }
  if ((line.equals("String_Node_Str")) || (courseId.equals("String_Node_Str"))) {
    throw new InvalidParametersException(Common.ERRORCODE_EMPTY_STRING,"String_Node_Str");
  }
  String[] parts=line.replace("String_Node_Str","String_Node_Str").split("String_Node_Str");
  if ((parts.length < 3) || (parts.length > 4)) {
    throw new InvalidParametersException(Common.ERRORCODE_INCORRECTLY_FORMATTED_STRING,"String_Node_Str");
  }
  String paramCourseId=courseId.trim();
  Common.validateCourseId(paramCourseId);
  String paramTeam=parts[TEAM_POS].trim();
  Common.validateTeamName(paramTeam);
  String paramName=parts[NAME_POS].trim();
  Common.validateStudentName(paramName);
  String paramEmail=parts[EMAIL_POS].trim();
  Common.validateEmail(paramEmail);
  String paramComment=parts.length == 4 ? parts[COMMENT_POS].trim() : "String_Node_Str";
  Common.validateComment(paramComment);
  setTeamName(paramTeam);
  setName(paramName);
  setEmail(paramEmail);
  setCourseID(paramCourseId);
  setComments(paramComment);
}

Fixed version (ground truth):
public Student(String line,String courseId) throws InvalidParametersException {
  int TEAM_POS=0;
  int NAME_POS=1;
  int EMAIL_POS=2;
  int COMMENT_POS=3;
  if ((line == null) || (courseId == null)) {
    throw new InvalidParametersException(Common.ERRORCODE_NULL_PARAMETER,"String_Node_Str");
  }
  if ((line.equals("String_Node_Str")) || (courseId.equals("String_Node_Str"))) {
    throw new InvalidParametersException(Common.ERRORCODE_EMPTY_STRING,"String_Node_Str");
  }
  String[] parts=line.replace("String_Node_Str","String_Node_Str").split("String_Node_Str");
  if ((parts.length < 3) || (parts.length > 4)) {
    throw new InvalidParametersException(Common.ERRORCODE_INCORRECTLY_FORMATTED_STRING,"String_Node_Str");
  }
  String paramCourseId=courseId.trim();
  Common.validateCourseId(paramCourseId);
  String paramTeam=parts[TEAM_POS].trim().isEmpty() ? null : parts[TEAM_POS].trim();
  Common.validateTeamName(paramTeam);
  String paramName=parts[NAME_POS].trim();
  Common.validateStudentName(paramName);
  String paramEmail=parts[EMAIL_POS].trim();
  Common.validateEmail(paramEmail);
  String paramComment=parts.length == 4 ? parts[COMMENT_POS].trim() : "String_Node_Str";
  paramComment=paramComment.isEmpty() ? null : paramComment;
  Common.validateComment(paramComment);
  setTeamName(paramTeam);
  setName(paramName);
  setEmail(paramEmail);
  setCourseID(paramCourseId);
  setComments(paramComment);
}
Program: 63033
Project: 63033
Buggy source:
public void setTeamName(String teamName){
  this.teamName=teamName.trim();
}

Fixed version (ground truth):
public void setTeamName(String teamName){
  this.teamName=(teamName == null ? null : teamName.trim());
}
Program: 63034
Project: 63034
Buggy source:
public void setID(String ID){
  this.ID=(ID == null ? "String_Node_Str" : ID.trim());
}

Fixed version (ground truth):
public void setID(String ID){
  this.ID=(ID == null ? null : ID.trim());
}
Program: 63035
Project: 63035
Buggy source:
public void setComments(String comments){
  this.comments=(comments == null ? "String_Node_Str" : comments.trim());
}

Fixed version (ground truth):
public void setComments(String comments){
  this.comments=(comments == null ? null : comments.trim());
}
Program: 63036
Project: 63036
Buggy source:
@Test public void testCreateStudent() throws Exception {
  printTestCaseHeader();
  refreshDataInDatastore();
  StudentData newStudent=new StudentData("String_Node_Str","String_Node_Str");
  verifyAbsentInDatastore(newStudent);
  apiServlet.createStudent(newStudent);
  verifyPresentInDatastore(newStudent);
  try {
    apiServlet.createStudent(newStudent);
    fail();
  }
 catch (  EntityAlreadyExistsException e) {
  }
  try {
    apiServlet.createStudent(null);
    fail();
  }
 catch (  InvalidParametersException e) {
  }
}

Fixed version (ground truth):
@Test public void testCreateStudent() throws Exception {
  printTestCaseHeader();
  StudentData newStudent=new StudentData("String_Node_Str","String_Node_Str");
  verifyAbsentInDatastore(newStudent);
  apiServlet.createStudent(newStudent);
  verifyPresentInDatastore(newStudent);
  try {
    apiServlet.createStudent(newStudent);
    fail();
  }
 catch (  EntityAlreadyExistsException e) {
  }
  try {
    apiServlet.createStudent(null);
    fail();
  }
 catch (  InvalidParametersException e) {
  }
}
Program: 63037
Project: 63037
Buggy source:
@Test public void testEnrollStudent() throws Exception {
  printTestCaseHeader();
  refreshDataInDatastore();
  String coordId="String_Node_Str";
  apiServlet.deleteCoord(coordId);
  apiServlet.createCoord(coordId,"String_Node_Str","String_Node_Str");
  String courseId="String_Node_Str";
  apiServlet.createCourse(coordId,courseId,"String_Node_Str");
  StudentData student1=new StudentData("String_Node_Str",courseId);
  assertEquals(0,apiServlet.getStudentListForCourse(courseId).size());
  StudentData enrollmentResult=apiServlet.enrollStudent(student1);
  assertEquals(1,apiServlet.getStudentListForCourse(courseId).size());
  verifyEnrollmentResultForStudent(student1,enrollmentResult,StudentData.UpdateStatus.NEW);
  enrollmentResult=apiServlet.enrollStudent(student1);
  verifyEnrollmentResultForStudent(student1,enrollmentResult,StudentData.UpdateStatus.UNMODIFIED);
  StudentData student2=new StudentData("String_Node_Str",courseId);
  enrollmentResult=apiServlet.enrollStudent(student2);
  verifyEnrollmentResultForStudent(student2,enrollmentResult,StudentData.UpdateStatus.MODIFIED);
  StudentData student3=new StudentData("String_Node_Str",courseId);
  enrollmentResult=apiServlet.enrollStudent(student3);
  assertEquals(2,apiServlet.getStudentListForCourse(courseId).size());
  verifyEnrollmentResultForStudent(student3,enrollmentResult,StudentData.UpdateStatus.NEW);
}

Fixed version (ground truth):
@Test public void testEnrollStudent() throws Exception {
  printTestCaseHeader();
  refreshDataInDatastore();
  String coordId="String_Node_Str";
  apiServlet.deleteCoord(coordId);
  apiServlet.createCoord(coordId,"String_Node_Str","String_Node_Str");
  String courseId="String_Node_Str";
  apiServlet.createCourse(coordId,courseId,"String_Node_Str");
  StudentData student1=new StudentData("String_Node_Str",courseId);
  assertEquals(0,apiServlet.getStudentListForCourse(courseId).size());
  StudentData enrollmentResult=apiServlet.enrollStudent(student1);
  assertEquals(1,apiServlet.getStudentListForCourse(courseId).size());
  verifyEnrollmentResultForStudent(student1,enrollmentResult,StudentData.UpdateStatus.NEW);
  enrollmentResult=apiServlet.enrollStudent(student1);
  verifyEnrollmentResultForStudent(student1,enrollmentResult,StudentData.UpdateStatus.UNMODIFIED);
  StudentData student2=dataBundle.students.get("String_Node_Str");
  student2.name=student2.name + "String_Node_Str";
  StudentData studentToEnroll=new StudentData(student2.email,student2.name,student2.comments,student2.course,student2.team);
  enrollmentResult=apiServlet.enrollStudent(studentToEnroll);
  verifyEnrollmentResultForStudent(studentToEnroll,enrollmentResult,StudentData.UpdateStatus.MODIFIED);
  verifyPresentInDatastore(student2);
  StudentData student3=new StudentData("String_Node_Str",courseId);
  enrollmentResult=apiServlet.enrollStudent(student3);
  assertEquals(2,apiServlet.getStudentListForCourse(courseId).size());
  verifyEnrollmentResultForStudent(student3,enrollmentResult,StudentData.UpdateStatus.NEW);
}
Program: 63039
Project: 63039
Buggy source:
public void publishEvaluation(String courseId,String evaluationName) throws EntityDoesNotExistException {
  Courses courses=Courses.inst();
  List<Student> studentList=courses.getStudentList(courseId);
  Evaluations evaluations=Evaluations.inst();
  evaluations.publishEvaluation(courseId,evaluationName,studentList);
}

Fixed version (ground truth):
public void publishEvaluation(String courseId,String evaluationName) throws EntityDoesNotExistException {
  Courses courses=Courses.inst();
  List<Student> studentList=courses.getStudentList(courseId);
  Evaluations.inst().publishEvaluation(courseId,evaluationName,studentList);
}
Program: 63040
Project: 63040
Buggy source:
/** 
 * Publishes an Evaluation.
 * @param courseID the course ID (Pre-condition: The courseID and name pair must be valid)
 * @param name the evaluation name (Pre-condition: The courseID and name pair must be valid)
 */
public boolean publishEvaluation(String courseID,String name,List<Student> studentList){
  Evaluation evaluation=getEvaluation(courseID,name);
  evaluation.setPublished(true);
  informStudentsOfPublishingOfEvaluationResults(studentList,courseID,name);
  return true;
}

Fixed version (ground truth):
/** 
 * Publishes an Evaluation.
 * @param courseID the course ID (Pre-condition: The courseID and name pair must be valid)
 * @param name the evaluation name (Pre-condition: The courseID and name pair must be valid)
 */
public boolean publishEvaluation(String courseID,String name,List<Student> studentList){
  Evaluation evaluation=getEvaluation(courseID,name);
  evaluation.setPublished(true);
  informStudentsOfPublishingOfEvaluationResults(studentList,courseID,name);
  getPM().close();
  return true;
}
Program: 63041
Project: 63041
Buggy source:
/** 
 * Deletes a Course object, along with all the Student objects that belong to the course.
 * @param courseID the course ID (Precondition: Must not be null)
 * @throws CourseDoesNotExistException if the course with the specified ID cannot be found
 */
public void deleteCoordinatorCourse(String courseID) throws CourseDoesNotExistException {
  Course course=getCourse(courseID);
  if (course == null)   throw new CourseDoesNotExistException();
  try {
    getPM().deletePersistent(course);
  }
  finally {
  }
  deleteAllStudents(courseID);
}

Fixed version (ground truth):
/** 
 * Deletes a Course object, along with all the Student objects that belong to the course.
 * @param courseID the course ID (Precondition: Must not be null)
 * @throws CourseDoesNotExistException if the course with the specified ID cannot be found
 */
public void deleteCoordinatorCourse(String courseID){
  Course course=getCourse(courseID);
  System.out.println("String_Node_Str");
  try {
    getPM().deletePersistent(course);
    deleteAllStudents(courseID);
    Evaluations.inst().deleteEvaluations(courseID);
  }
 catch (  Exception e) {
  }
}
Program: 63042
Project: 63042
Buggy source:
/** 
 * 获取某个包下所有的class信息
 * @param packageName 包名
 * @return
 */
public static List<Class<?>> getClasses(String packageName){
  String packageFileName=packageName.replace(POINT,File.separator);
  URL fullPath=getDefaultClassLoader().getResource(packageFileName);
  if (fullPath == null) {
    fullPath=ClassUtil.class.getClassLoader().getResource(packageFileName);
  }
  String protocol=fullPath.getProtocol();
  if (protocol.equals(ServerToolkits.PROTOCOL_FILE)) {
    try {
      File dir=new File(fullPath.toURI());
      return findClassesByFile(dir,packageName);
    }
 catch (    URISyntaxException e) {
      throw new RuntimeException(e);
    }
  }
 else   if (protocol.equals(ServerToolkits.PROTOCOL_JAR)) {
    try {
      return findClassesByJar(((JarURLConnection)fullPath.openConnection()).getJarFile(),packageName);
    }
 catch (    IOException e) {
      throw new RuntimeException(e);
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * 获取某个包下所有的class信息
 * @param packageName 包名
 * @return
 */
public static List<Class<?>> getClasses(String packageName){
  String packageFileName=packageName.replace(POINT,File.separator);
  URL fullPath=getDefaultClassLoader().getResource(packageFileName);
  if (fullPath == null) {
    fullPath=ClassUtil.class.getProtectionDomain().getCodeSource().getLocation();
  }
  String protocol=fullPath.getProtocol();
  if (protocol.equals(ServerToolkits.PROTOCOL_FILE)) {
    try {
      File dir=new File(fullPath.toURI());
      return findClassesByFile(dir,packageName);
    }
 catch (    URISyntaxException e) {
      throw new RuntimeException(e);
    }
  }
 else   if (protocol.equals(ServerToolkits.PROTOCOL_JAR)) {
    try {
      return findClassesByJar(((JarURLConnection)fullPath.openConnection()).getJarFile(),packageName);
    }
 catch (    IOException e) {
      throw new RuntimeException(e);
    }
  }
  throw new RuntimeException("String_Node_Str" + packageName + "String_Node_Str");
}
Program: 63043
Project: 63043
Buggy source:
/** 
 * 微信SSL
 * @return
 */
protected WeixinRequestExecutor getWeixinSSLExecutor() throws WeixinException {
  if (weixinSSLExecutor == null) {
    try {
      File certificate=new File(weixinAccount.getCertificateFile());
      if (!certificate.exists() || !certificate.isFile()) {
        throw new WeixinException("String_Node_Str" + certificate.toString());
      }
      this.weixinSSLExecutor=weixinExecutor.createSSLRequestExecutor(weixinAccount.getCertificateKey(),new FileInputStream(certificate));
    }
 catch (    IOException e) {
      throw new WeixinException("String_Node_Str",e);
    }
  }
  return this.weixinSSLExecutor;
}

Fixed version (ground truth):
/** 
 * 微信SSL
 * @return
 */
protected WeixinRequestExecutor getWeixinSSLExecutor() throws WeixinException {
  if (weixinSSLExecutor == null) {
    try {
      InputStream is=null;
      File certificate=new File(Weixin4jConfigUtil.replaceClassPathValue(weixinAccount.getCertificateFile()));
      if (!certificate.exists() || !certificate.isFile()) {
        is=Weixin4jConfigUtil.CLASSLOADER.getResourceAsStream(weixinAccount.getCertificateFile());
      }
 else {
        is=new FileInputStream(certificate);
      }
      if (is == null) {
        throw new WeixinException("String_Node_Str" + certificate.toString());
      }
      this.weixinSSLExecutor=weixinExecutor.createSSLRequestExecutor(weixinAccount.getCertificateKey(),is);
    }
 catch (    IOException e) {
      throw new WeixinException("String_Node_Str",e);
    }
  }
  return this.weixinSSLExecutor;
}
Program: 63044
Project: 63044
Buggy source:
/** 
 * 更新客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @param pwd 客服账号登录密码
 * @return 处理结果
 * @throws WeixinException
 * @see com.foxinmy.weixin4j.mp.api.CustomApi
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      更新客服账号</a>
 */
public ApiResult updateKfAccount(String id,String name,String pwd) throws WeixinException {
  return customApi.updateKfAccount(id,name,pwd);
}

Fixed version (ground truth):
/** 
 * 更新客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @return 处理结果
 * @throws WeixinException
 * @see com.foxinmy.weixin4j.mp.api.CustomApi
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      更新客服账号</a>
 */
public ApiResult updateKfAccount(String id,String name) throws WeixinException {
  return customApi.updateKfAccount(id,name);
}
Program: 63045
Project: 63045
Buggy source:
/** 
 * 新增客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @param pwd 客服账号登录密码
 * @return 处理结果
 * @throws WeixinException
 * @see com.foxinmy.weixin4j.mp.api.CustomApi 客服管理接口返回码</a>
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      新增客服账号</a>
 */
public ApiResult createKfAccount(String id,String name,String pwd) throws WeixinException {
  return customApi.createKfAccount(id,name,pwd);
}

Fixed version (ground truth):
/** 
 * 新增客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @return 处理结果
 * @throws WeixinException
 * @see com.foxinmy.weixin4j.mp.api.CustomApi 客服管理接口返回码</a>
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      新增客服账号</a>
 */
public ApiResult createKfAccount(String id,String name) throws WeixinException {
  return customApi.createKfAccount(id,name);
}
Program: 63046
Project: 63046
Buggy source:
/** 
 * 更新客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @param pwd 客服账号登录密码
 * @return 处理结果
 * @throws WeixinException
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      新增客服账号</a>
 */
public ApiResult updateKfAccount(String id,String name,String pwd) throws WeixinException {
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",id);
  obj.put("String_Node_Str",name);
  obj.put("String_Node_Str",DigestUtil.MD5(pwd));
  String kf_update_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.post(String.format(kf_update_uri,token.getAccessToken()),obj.toJSONString());
  return response.getAsResult();
}

Fixed version (ground truth):
/** 
 * 更新客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @return 处理结果
 * @throws WeixinException
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      新增客服账号</a>
 */
public ApiResult updateKfAccount(String id,String name) throws WeixinException {
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",id);
  obj.put("String_Node_Str",name);
  String kf_update_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.post(String.format(kf_update_uri,token.getAccessToken()),obj.toJSONString());
  return response.getAsResult();
}
Program: 63047
Project: 63047
Buggy source:
/** 
 * 新增客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @param pwd 客服账号登录密码
 * @return 处理结果
 * @throws WeixinException
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      新增客服账号</a>
 */
public ApiResult createKfAccount(String id,String name,String pwd) throws WeixinException {
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",id);
  obj.put("String_Node_Str",name);
  obj.put("String_Node_Str",DigestUtil.MD5(pwd));
  String kf_create_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.post(String.format(kf_create_uri,token.getAccessToken()),obj.toJSONString());
  return response.getAsResult();
}

Fixed version (ground truth):
/** 
 * 新增客服账号
 * @param id 完整客服账号，格式为：账号前缀@公众号微信号，账号前缀最多10个字符，必须是英文或者数字字符。如果没有公众号微信号， 请前往微信公众平台设置。
 * @param name 客服昵称，最长6个汉字或12个英文字符
 * @return 处理结果
 * @throws WeixinException
 * @see <a href=
	 *      "https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1458044813&token=&lang=zh_CN">
	 *      新增客服账号</a>
 */
public ApiResult createKfAccount(String id,String name) throws WeixinException {
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",id);
  obj.put("String_Node_Str",name);
  String kf_create_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.post(String.format(kf_create_uri,token.getAccessToken()),obj.toJSONString());
  return response.getAsResult();
}
Program: 63048
Project: 63048
Buggy source:
@Override public String process(Object object,String name,Object value){
  if (object instanceof Button && name.equals("String_Node_Str")) {
    ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
    if (buttonType != null) {
      if (ButtonType.view == buttonType || ButtonType.miniprogram == buttonType) {
        return "String_Node_Str";
      }
 else       if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
        return "String_Node_Str";
      }
 else {
        return "String_Node_Str";
      }
    }
  }
  return name;
}

Fixed version (ground truth):
@Override public String process(Object object,String name,Object value){
  if (object instanceof Button && name.equals("String_Node_Str") && StringUtil.isNotBlank(((Button)object).getType())) {
    ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
    if (ButtonType.view == buttonType || ButtonType.miniprogram == buttonType) {
      return "String_Node_Str";
    }
 else     if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
      return "String_Node_Str";
    }
 else {
      return "String_Node_Str";
    }
  }
  return name;
}
Program: 63049
Project: 63049
Buggy source:
private WeixinResponse createMenu0(String url,JSONObject data) throws WeixinException {
  return weixinExecutor.post(String.format(url,tokenManager.getAccessToken()),JSON.toJSONString(data,new NameFilter(){
    @Override public String process(    Object object,    String name,    Object value){
      if (object instanceof Button && name.equals("String_Node_Str")) {
        ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
        if (buttonType != null) {
          if (ButtonType.view == buttonType || ButtonType.miniprogram == buttonType) {
            return "String_Node_Str";
          }
 else           if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
            return "String_Node_Str";
          }
 else {
            return "String_Node_Str";
          }
        }
      }
      return name;
    }
  }
));
}

Fixed version (ground truth):
private WeixinResponse createMenu0(String url,JSONObject data) throws WeixinException {
  return weixinExecutor.post(String.format(url,tokenManager.getAccessToken()),JSON.toJSONString(data,new NameFilter(){
    @Override public String process(    Object object,    String name,    Object value){
      if (object instanceof Button && name.equals("String_Node_Str") && StringUtil.isNotBlank(((Button)object).getType())) {
        ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
        if (ButtonType.view == buttonType || ButtonType.miniprogram == buttonType) {
          return "String_Node_Str";
        }
 else         if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
          return "String_Node_Str";
        }
 else {
          return "String_Node_Str";
        }
      }
      return name;
    }
  }
));
}
Program: 63050
Project: 63050
Buggy source:
/** 
 * 删除菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
 * @param agentid 应用ID
 * @throws WeixinException
 * @see <a href=
	 *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%A0%E9%99%A4%E8%8F%9C%E5%8D%95">
	 *      删除菜单</a>
 * @return 处理结果
 */
public ApiResult deleteMenu(int agentid) throws WeixinException {
  String menu_delete_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.get(String.format(menu_delete_uri,token.getAccessToken(),agentid));
  return response.getAsResult();
}

Fixed version (ground truth):
/** 
 * 删除菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
 * @param agentid 应用ID
 * @throws WeixinException
 * @see <a href=
     *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%A0%E9%99%A4%E8%8F%9C%E5%8D%95">
     *      删除菜单</a>
 * @return 处理结果
 */
public ApiResult deleteMenu(int agentid) throws WeixinException {
  String menu_delete_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.get(String.format(menu_delete_uri,token.getAccessToken(),agentid));
  return response.getAsResult();
}
Program: 63051
Project: 63051
Buggy source:
/** 
 * 自定义菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
 * @param agentid 应用ID
 * @param buttons 菜单列表
 * @throws WeixinException
 * @see <a href=
	 *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E8%8F%9C%E5%8D%95">
	 *      创建自定义菜单</a>
 * @see com.foxinmy.weixin4j.model.Button
 */
public ApiResult createMenu(int agentid,List<Button> buttons) throws WeixinException {
  String menu_create_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",buttons);
  WeixinResponse response=weixinExecutor.post(String.format(menu_create_uri,token.getAccessToken(),agentid),JSON.toJSONString(obj,new NameFilter(){
    @Override public String process(    Object object,    String name,    Object value){
      if (object instanceof Button && name.equals("String_Node_Str")) {
        ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
        if (buttonType != null) {
          if (ButtonType.view == buttonType) {
            return "String_Node_Str";
          }
 else           if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
            return "String_Node_Str";
          }
 else {
            return "String_Node_Str";
          }
        }
      }
      return name;
    }
  }
));
  return response.getAsResult();
}

Fixed version (ground truth):
/** 
 * 自定义菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式)
 * @param agentid 应用ID
 * @param buttons 菜单列表
 * @throws WeixinException
 * @see <a href=
     *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E8%8F%9C%E5%8D%95">
     *      创建自定义菜单</a>
 * @see com.foxinmy.weixin4j.model.Button
 */
public ApiResult createMenu(int agentid,List<Button> buttons) throws WeixinException {
  String menu_create_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",buttons);
  WeixinResponse response=weixinExecutor.post(String.format(menu_create_uri,token.getAccessToken(),agentid),JSON.toJSONString(obj,new NameFilter(){
    @Override public String process(    Object object,    String name,    Object value){
      if (object instanceof Button && name.equals("String_Node_Str") && StringUtil.isNotBlank(((Button)object).getType())) {
        ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
        if (ButtonType.view == buttonType) {
          return "String_Node_Str";
        }
 else         if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
          return "String_Node_Str";
        }
 else {
          return "String_Node_Str";
        }
      }
      return name;
    }
  }
));
  return response.getAsResult();
}
Program: 63052
Project: 63052
Buggy source:
@Override public String process(Object object,String name,Object value){
  if (object instanceof Button && name.equals("String_Node_Str")) {
    ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
    if (buttonType != null) {
      if (ButtonType.view == buttonType) {
        return "String_Node_Str";
      }
 else       if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
        return "String_Node_Str";
      }
 else {
        return "String_Node_Str";
      }
    }
  }
  return name;
}

Fixed version (ground truth):
@Override public String process(Object object,String name,Object value){
  if (object instanceof Button && name.equals("String_Node_Str") && StringUtil.isNotBlank(((Button)object).getType())) {
    ButtonType buttonType=ButtonType.valueOf(((Button)object).getType());
    if (ButtonType.view == buttonType) {
      return "String_Node_Str";
    }
 else     if (ButtonType.media_id == buttonType || ButtonType.view_limited == buttonType) {
      return "String_Node_Str";
    }
 else {
      return "String_Node_Str";
    }
  }
  return name;
}
Program: 63053
Project: 63053
Buggy source:
/** 
 * 查询菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式。)
 * @param agentid 应用ID
 * @return 菜单集合
 * @throws WeixinException
 * @see <a href=
	 *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E8%8F%9C%E5%8D%95%E5%88%97%E8%A1%A8">
	 *      查询菜单</a>
 * @see com.foxinmy.weixin4j.model.Button
 */
public List<Button> getMenu(int agentid) throws WeixinException {
  String menu_get_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.get(String.format(menu_get_uri,token.getAccessToken(),agentid));
  JSONArray buttons=response.getAsJson().getJSONArray("String_Node_Str");
  List<Button> buttonList=new ArrayList<Button>(buttons.size());
  ParseProcess processor=new ExtraProcessor(){
    @Override public void processExtra(    Object object,    String key,    Object value){
      ((Button)object).setContent(String.valueOf(value));
    }
  }
;
  for (int i=0; i < buttons.size(); i++) {
    buttonList.add(JSON.parseObject(buttons.getString(i),Button.class,processor));
  }
  return buttonList;
}

Fixed version (ground truth):
/** 
 * 查询菜单(管理员须拥有应用的管理权限 并且应用必须设置在回调模式。)
 * @param agentid 应用ID
 * @return 菜单集合
 * @throws WeixinException
 * @see <a href=
     *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E8%8F%9C%E5%8D%95%E5%88%97%E8%A1%A8">
     *      查询菜单</a>
 * @see com.foxinmy.weixin4j.model.Button
 */
public List<Button> getMenu(int agentid) throws WeixinException {
  String menu_get_uri=getRequestUri("String_Node_Str");
  Token token=tokenManager.getCache();
  WeixinResponse response=weixinExecutor.get(String.format(menu_get_uri,token.getAccessToken(),agentid));
  JSONArray buttons=response.getAsJson().getJSONArray("String_Node_Str");
  List<Button> buttonList=new ArrayList<Button>(buttons.size());
  ParseProcess processor=new ExtraProcessor(){
    @Override public void processExtra(    Object object,    String key,    Object value){
      ((Button)object).setContent(String.valueOf(value));
    }
  }
;
  for (int i=0; i < buttons.size(); i++) {
    buttonList.add(JSON.parseObject(buttons.getString(i),Button.class,processor));
  }
  return buttonList;
}
Program: 63058
Project: 63058
Buggy source:
public NameValue(String name,String value){
  this.name=name;
  this.value=value;
}

Fixed version (ground truth):
@JSONCreator public NameValue(@JSONField(name="String_Node_Str") String name,@JSONField(name="String_Node_Str") String value){
  this.name=name;
  this.value=value;
}
Program: 63059
Project: 63059
Buggy source:
/** 
 * 获取成员
 * @param userid 成员唯一ID
 * @see com.foxinmy.weixin4j.qy.model.User
 * @see <a href=
	 *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%88%90%E5%91%98#.E8.8E.B7.E5.8F.96.E6.88.90.E5.91.98">
	 *      获取成员说明</a>
 * @return 成员对象
 * @throws WeixinException
 */
public User getUser(String userid) throws WeixinException {
  String user_get_uri=getRequestUri("String_Node_Str");
  Token token=tokenHolder.getToken();
  WeixinResponse response=weixinExecutor.get(String.format(user_get_uri,token.getAccessToken(),userid));
  JSONObject obj=response.getAsJson();
  Object attrs=obj.getJSONObject("String_Node_Str").remove("String_Node_Str");
  if (attrs != null) {
    obj.put("String_Node_Str",attrs);
  }
  return JSON.toJavaObject(obj,User.class);
}

Fixed version (ground truth):
/** 
 * 获取成员
 * @param userid 成员唯一ID
 * @see com.foxinmy.weixin4j.qy.model.User
 * @see <a href=
	 *      "http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AE%A1%E7%90%86%E6%88%90%E5%91%98#.E8.8E.B7.E5.8F.96.E6.88.90.E5.91.98">
	 *      获取成员说明</a>
 * @return 成员对象
 * @throws WeixinException
 */
public User getUser(String userid) throws WeixinException {
  String user_get_uri=getRequestUri("String_Node_Str");
  Token token=tokenHolder.getToken();
  WeixinResponse response=weixinExecutor.get(String.format(user_get_uri,token.getAccessToken(),userid));
  JSONObject obj=response.getAsJson();
  Object attrs=obj.remove("String_Node_Str");
  User user=JSON.toJavaObject(obj,User.class);
  if (attrs != null) {
    user.setExtattr(JSON.parseArray(((JSONObject)attrs).getString("String_Node_Str"),NameValue.class));
  }
  return user;
}
Program: 63061
Project: 63061
Buggy source:
public MessageType getMsgType(){
switch (msgType) {
case 1:
    return MessageType.text;
case 2:
  return MessageType.image;
case 3:
return MessageType.voice;
case 4:
return MessageType.video;
case 6:
return MessageType.link;
default :
return null;
}
}

Fixed version (ground truth):
/** 
 * 1代表文字 2代表图片 3代表语音 4代表视频 6代表第三方应用消息（链接消息）
 * @return
 */
public String getMsgType(){
switch (msgType) {
case 1:
    return "String_Node_Str";
case 2:
  return "String_Node_Str";
case 3:
return "String_Node_Str";
case 4:
return "String_Node_Str";
case 6:
return "String_Node_Str";
default :
return null;
}
}
Program: 63063
Project: 63063
Buggy source:
public static String encodeBase64String(final byte[] bytes){
  byte[] data=encodeBase64(bytes);
  return HexUtil.encodeHexString(data);
}

Fixed version (ground truth):
public static String encodeBase64String(final byte[] bytes){
  byte[] data=encodeBase64(bytes);
  return StringUtil.newStringUtf8(data).trim();
}
Program: 63065
Project: 63065
Buggy source:
/** 
 * 验证微信签名
 * @param signature 微信加密签名，signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数
 * @return 开发者通过检验signature对请求进行相关校验。若确认此次GET请求来自微信服务器请原样返回echostr参数内容，则接入生效 成为开发者成功，否则接入失败
 * @see <a
	 *      href="http://mp.weixin.qq.com/wiki/0/61c3a8b9d50ac74f18bdf2e54ddfc4e0.html">接入指南</a>
 */
public static String signature(String... para){
  Arrays.sort(para);
  StringBuilder sb=new StringBuilder();
  for (  String str : para) {
    sb.append(str);
  }
  return DigestUtil.SHA1(sb.toString());
}

Fixed version (ground truth):
/** 
 * 验证微信签名
 * @param signature 微信加密签名，signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数
 * @return 开发者通过检验signature对请求进行相关校验。若确认此次GET请求来自微信服务器请原样返回echostr参数内容，则接入生效 成为开发者成功，否则接入失败
 * @see <a
	 *      href="http://mp.weixin.qq.com/wiki/0/61c3a8b9d50ac74f18bdf2e54ddfc4e0.html">接入指南</a>
 */
public static String signature(String... para){
  Arrays.sort(para);
  StringBuffer sb=new StringBuffer();
  for (  String str : para) {
    sb.append(str);
  }
  return DigestUtil.SHA1(sb.toString());
}
Program: 63066
Project: 63066
Buggy source:
/** 
 * 获取企业号应用
 * @param authCorpid 授权方corpid
 * @param agentid 授权方应用id
 * @return 应用信息
 * @see com.foxinmy.weixin4j.qy.model.AgentInfo
 * @see <a
	 *      href="http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E#.E8.8E.B7.E5.8F.96.E4.BC.81.E4.B8.9A.E5.8F.B7.E5.BA.94.E7.94.A8">获取企业号应用</a>
 * @throws WeixinException
 */
public AgentInfo getAgent(String authCorpid,int agentid) throws WeixinException {
  String suite_get_agent_uri=getRequestUri("String_Node_Str");
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",suiteId);
  obj.put("String_Node_Str",authCorpid);
  obj.put("String_Node_Str",suitePerCodeHolder.getPermanentCode(suiteId));
  obj.put("String_Node_Str",agentid);
  WeixinResponse response=weixinClient.post(String.format(suite_get_agent_uri,suiteTokenHolder.getAccessToken(),obj.toJSONString()));
  JSONObject jsonObj=response.getAsJson();
  AgentInfo agent=JSON.toJavaObject(jsonObj,AgentInfo.class);
  agent.setAllowUsers(JSON.parseArray(jsonObj.getJSONObject("String_Node_Str").getString("String_Node_Str"),User.class));
  agent.setAllowPartys(JSON.parseArray(jsonObj.getJSONObject("String_Node_Str").getString("String_Node_Str"),Integer.class));
  agent.setAllowTags(JSON.parseArray(jsonObj.getJSONObject("String_Node_Str").getString("String_Node_Str"),Integer.class));
  return agent;
}

Fixed version (ground truth):
/** 
 * 获取企业号应用
 * @param authCorpid 授权方corpid
 * @param agentid 授权方应用id
 * @return 应用信息
 * @see com.foxinmy.weixin4j.qy.model.AgentInfo
 * @see <a
	 *      href="http://qydev.weixin.qq.com/wiki/index.php?title=%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BA%94%E7%94%A8%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E#.E8.8E.B7.E5.8F.96.E4.BC.81.E4.B8.9A.E5.8F.B7.E5.BA.94.E7.94.A8">获取企业号应用</a>
 * @throws WeixinException
 */
public AgentInfo getAgent(String authCorpid,int agentid) throws WeixinException {
  String suite_get_agent_uri=getRequestUri("String_Node_Str");
  JSONObject obj=new JSONObject();
  obj.put("String_Node_Str",suiteId);
  obj.put("String_Node_Str",authCorpid);
  obj.put("String_Node_Str",suitePerCodeHolder.getPermanentCode(suiteId));
  obj.put("String_Node_Str",agentid);
  WeixinResponse response=weixinClient.post(String.format(suite_get_agent_uri,suiteTokenHolder.getAccessToken()),obj.toJSONString());
  JSONObject jsonObj=response.getAsJson();
  AgentInfo agent=JSON.toJavaObject(jsonObj,AgentInfo.class);
  agent.setAllowUsers(JSON.parseArray(jsonObj.getJSONObject("String_Node_Str").getString("String_Node_Str"),User.class));
  agent.setAllowPartys(JSON.parseArray(jsonObj.getJSONObject("String_Node_Str").getString("String_Node_Str"),Integer.class));
  agent.setAllowTags(JSON.parseArray(jsonObj.getJSONObject("String_Node_Str").getString("String_Node_Str"),Integer.class));
  return agent;
}
Program: 63067
Project: 63067
Buggy source:
/** 
 * 未匹配到handler时触发
 * @param context 上下文环境
 * @param request 微信请求
 * @param message 微信消息
 */
protected void noHandlerFound(ChannelHandlerContext context,WeixinRequest request,Object message){
  context.writeAndFlush(HttpUtil.createHttpResponse(null,NOT_FOUND,null)).addListener(ChannelFutureListener.CLOSE);
}

Fixed version (ground truth):
/** 
 * 未匹配到handler时触发
 * @param context 上下文环境
 * @param request 微信请求
 * @param message 微信消息
 */
protected void noHandlerFound(ChannelHandlerContext context,WeixinRequest request,Object message){
  if (isDebug) {
    context.writeAndFlush(new TextResponse(request.getOriginalContent())).addListener(ChannelFutureListener.CLOSE);
  }
 else {
    context.writeAndFlush(HttpUtil.createHttpResponse(null,NOT_FOUND,null)).addListener(ChannelFutureListener.CLOSE);
  }
}