Program: 11996
Project: 11996
Buggy source:
@Override public String getTestMethodSourceCode(TestMethodMeta testMethodMeta){
  StringBuilder buf=new StringBuilder();
  if (config.mockObjectFramework == MockObjectFramework.JMockit) {
    List<String> mockedFieldsForJMockit=getMockedFieldsForJMockit(testMethodMeta);
    for (    String mocked : mockedFieldsForJMockit) {
      appendTabs(buf,1);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,1);
      buf.append(mocked);
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
    }
    if (mockedFieldsForJMockit.size() > 0) {
      appendCRLF(buf);
    }
  }
  if (config.junitVersion == JUnitVersion.version3) {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    buf.append(StringValue.JUnit.TestMethodNamePrefixForJUnitVersion3);
    buf.append(config.testMethodName.basicDelimiter);
  }
 else {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    appendCRLF(buf);
    appendTabs(buf,1);
    buf.append("String_Node_Str");
  }
  buf.append(getTestMethodNamePrefix(testMethodMeta,testMethodMeta.testingTargetException));
  boolean isThrowableRequired=false;
  if (testMethodMeta.methodMeta != null && testMethodMeta.methodMeta.throwsExceptions != null) {
    for (    ExceptionMeta ex : testMethodMeta.methodMeta.throwsExceptions) {
      if (ex.name.equals("String_Node_Str")) {
        isThrowableRequired=true;
        break;
      }
    }
  }
  buf.append("String_Node_Str");
  buf.append(isThrowableRequired ? "String_Node_Str" : "String_Node_Str");
  buf.append("String_Node_Str");
  appendCRLF(buf);
  appendTabs(buf,2);
  buf.append("String_Node_Str");
  buf.append(messageValue.getAutoGeneratedTODOMessage());
  appendCRLF(buf);
  if (testMethodMeta.isTypeTest) {
    appendTabs(buf,2);
    if (config.junitVersion == JUnitVersion.version3) {
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.classMeta.name);
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.classMeta.name);
      buf.append("String_Node_Str");
    }
    appendCRLF(buf);
  }
 else   if (testMethodMeta.isInstantiationTest) {
    String instantiation=getInstantiationSourceCode(config,testMethodMeta);
    buf.append(instantiation);
    appendTabs(buf,2);
    if (config.junitVersion == JUnitVersion.version3) {
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
    }
    appendCRLF(buf);
  }
 else   if (config.isTemplateImplementationRequired) {
    appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
    if (config.mockObjectFramework == MockObjectFramework.JMock2) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (config.mockObjectFramework == MockObjectFramework.EasyMock) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (!testMethodMeta.methodMeta.isStatic) {
      String instantiation=getInstantiationSourceCode(config,testMethodMeta);
      buf.append(instantiation);
    }
    appendBDDMockitoComment(buf,"String_Node_Str",2);
    if (testMethodMeta.testingTargetException == null) {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        appendTabs(buf,2);
        buf.append(testMethodMeta.methodMeta.returnType.name);
        buf.append("String_Node_Str");
      }
 else {
        appendTabs(buf,2);
      }
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      appendMockVerifying(buf,2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        if (testMethodMeta.extReturn != null) {
          if (isCanonicalClassNameUsed(testMethodMeta.extReturn.canonicalClassName,testMethodMeta.methodMeta.returnType.name,targetClassMeta)) {
            for (            String assertion : testMethodMeta.extReturn.asserts) {
              String[] lines=assertion.split(StringValue.Semicolon);
              for (              String line : lines) {
                if (line != null && line.trim().length() > 0) {
                  appendTabs(buf,2);
                  buf.append(line.trim());
                  buf.append(StringValue.Semicolon);
                  appendCRLF(buf);
                }
              }
            }
          }
        }
 else {
          appendTabs(buf,2);
          buf.append(testMethodMeta.methodMeta.returnType.name);
          buf.append("String_Node_Str");
          if (PrimitiveTypeUtil.isPrimitive(testMethodMeta.methodMeta.returnType.name)) {
            buf.append(PrimitiveTypeUtil.getTypeDefaultValue(testMethodMeta.methodMeta.returnType.name));
          }
 else {
            buf.append("String_Node_Str");
          }
          buf.append(StringValue.Semicolon);
          appendCRLF(buf);
          appendTabs(buf,2);
          if (config.junitVersion == JUnitVersion.version3) {
            buf.append("String_Node_Str");
          }
 else {
            buf.append("String_Node_Str");
          }
          buf.append(StringValue.Semicolon);
          appendCRLF(buf);
        }
      }
    }
 else {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",3);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,3);
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.testingTargetException.name);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
  }
  appendTabs(buf,1);
  buf.append("String_Node_Str");
  appendCRLF(buf);
  return buf.toString();
}

Fixed version (ground truth):
@Override public String getTestMethodSourceCode(TestMethodMeta testMethodMeta){
  StringBuilder buf=new StringBuilder();
  if (config.mockObjectFramework == MockObjectFramework.JMockit) {
    List<String> mockedFieldsForJMockit=getMockedFieldsForJMockit(testMethodMeta);
    for (    String mocked : mockedFieldsForJMockit) {
      appendTabs(buf,1);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,1);
      buf.append(mocked);
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
    }
    if (mockedFieldsForJMockit.size() > 0) {
      appendCRLF(buf);
    }
  }
  if (config.junitVersion == JUnitVersion.version3) {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    buf.append(StringValue.JUnit.TestMethodNamePrefixForJUnitVersion3);
    buf.append(config.testMethodName.basicDelimiter);
  }
 else {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    appendCRLF(buf);
    appendTabs(buf,1);
    buf.append("String_Node_Str");
  }
  buf.append(getTestMethodNamePrefix(testMethodMeta,testMethodMeta.testingTargetException));
  boolean isThrowableRequired=false;
  if (testMethodMeta.methodMeta != null && testMethodMeta.methodMeta.throwsExceptions != null) {
    for (    ExceptionMeta ex : testMethodMeta.methodMeta.throwsExceptions) {
      if (ex.name.equals("String_Node_Str")) {
        isThrowableRequired=true;
        break;
      }
    }
  }
  buf.append("String_Node_Str");
  buf.append(isThrowableRequired ? "String_Node_Str" : "String_Node_Str");
  buf.append("String_Node_Str");
  appendCRLF(buf);
  appendTabs(buf,2);
  buf.append("String_Node_Str");
  buf.append(messageValue.getAutoGeneratedTODOMessage());
  appendCRLF(buf);
  if (testMethodMeta.isTypeTest) {
    appendTabs(buf,2);
    if (config.junitVersion == JUnitVersion.version3) {
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.classMeta.name);
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.classMeta.name);
      buf.append("String_Node_Str");
    }
    appendCRLF(buf);
  }
 else   if (testMethodMeta.isInstantiationTest) {
    String instantiation=getInstantiationSourceCode(config,testMethodMeta);
    buf.append(instantiation);
    appendTabs(buf,2);
    if (config.junitVersion == JUnitVersion.version3) {
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
    }
    appendCRLF(buf);
  }
 else   if (config.isTemplateImplementationRequired) {
    appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
    if (config.mockObjectFramework == MockObjectFramework.JMock2) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (config.mockObjectFramework == MockObjectFramework.EasyMock) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (!testMethodMeta.methodMeta.isStatic) {
      String instantiation=getInstantiationSourceCode(config,testMethodMeta);
      buf.append(instantiation);
    }
    appendBDDMockitoComment(buf,"String_Node_Str",2);
    if (testMethodMeta.testingTargetException == null) {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        appendTabs(buf,2);
        buf.append(testMethodMeta.methodMeta.returnType.name);
        buf.append("String_Node_Str");
      }
 else {
        appendTabs(buf,2);
      }
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      appendMockVerifying(buf,2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        if (testMethodMeta.extReturn != null) {
          if (isCanonicalClassNameUsed(testMethodMeta.extReturn.canonicalClassName,testMethodMeta.methodMeta.returnType.name,targetClassMeta)) {
            for (            String assertion : testMethodMeta.extReturn.asserts) {
              String[] lines=assertion.split(StringValue.Semicolon);
              for (              String line : lines) {
                if (line != null && line.trim().length() > 0) {
                  appendTabs(buf,2);
                  line=line.trim().replaceAll(StringValue.CarriageReturn,"String_Node_Str").replaceAll(StringValue.LineFeed,"String_Node_Str");
                  buf.append(line);
                  buf.append(StringValue.Semicolon);
                  appendCRLF(buf);
                }
              }
            }
          }
        }
 else {
          appendTabs(buf,2);
          buf.append(testMethodMeta.methodMeta.returnType.name);
          buf.append("String_Node_Str");
          if (PrimitiveTypeUtil.isPrimitive(testMethodMeta.methodMeta.returnType.name)) {
            buf.append(PrimitiveTypeUtil.getTypeDefaultValue(testMethodMeta.methodMeta.returnType.name));
          }
 else {
            buf.append("String_Node_Str");
          }
          buf.append(StringValue.Semicolon);
          appendCRLF(buf);
          appendTabs(buf,2);
          if (config.junitVersion == JUnitVersion.version3) {
            buf.append("String_Node_Str");
          }
 else {
            buf.append("String_Node_Str");
          }
          buf.append(StringValue.Semicolon);
          appendCRLF(buf);
        }
      }
    }
 else {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",3);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,3);
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.testingTargetException.name);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
  }
  appendTabs(buf,1);
  buf.append("String_Node_Str");
  appendCRLF(buf);
  return buf.toString();
}