nus-yam/ex-repair huggingface dataset:
Program: 178543
Project: 178543
Buggy source:
/** 
 * @param file
 * @return
 * @throws FileNotFoundException
 * @throws JAXBException
 * @throws IOException
 */
private List<AbstractSample> getResultList(File file){
  TestResults results=new TestResults();
  InputStream inputStream=null;
  Reader reader=null;
  try {
    inputStream=new FileInputStream(file);
    reader=new InputStreamReader(inputStream,charset);
    JAXBContext jc=JAXBContext.newInstance(ObjectFactory.class);
    Unmarshaller unmarshaller=jc.createUnmarshaller();
    results=(TestResults)unmarshaller.unmarshal(reader);
  }
 catch (  JAXBException jAXBException) {
    throw new ParserException("String_Node_Str",jAXBException);
  }
catch (  FileNotFoundException fileNotFoundException) {
    throw new ParserException("String_Node_Str" + file,fileNotFoundException);
  }
  try {
    if (reader != null) {
      reader.close();
    }
    if (inputStream != null) {
      inputStream.close();
    }
  }
 catch (  IOException e) {
    throw new ParserException("String_Node_Str" + e.getMessage(),e);
  }
  List<AbstractSample> sampleResultList=null;
  if (results == null) {
    sampleResultList=new ArrayList<AbstractSample>();
  }
 else {
    sampleResultList=results.getHttpSampleOrSample();
  }
  return sampleResultList;
}

Fixed version (ground truth):
/** 
 * @param file xml file
 * @return the list of results
 * @throws FileNotFoundException
 * @throws JAXBException
 * @throws IOException
 */
private List<AbstractSample> getResultList(File file){
  try (InputStream inputStream=new FileInputStream(file);Reader reader=new InputStreamReader(inputStream,charset)){
    final JAXBContext jc=JAXBContext.newInstance(ObjectFactory.class);
    final Unmarshaller unmarshaller=jc.createUnmarshaller();
    final TestResults results=(TestResults)unmarshaller.unmarshal(reader);
    if (results == null) {
      return Collections.emptyList();
    }
    return results.getHttpSampleOrSample();
  }
 catch (  JAXBException jAXBException) {
    throw new ParserException("String_Node_Str",jAXBException);
  }
catch (  FileNotFoundException fileNotFoundException) {
    throw new ParserException(String.format("String_Node_Str",file.getAbsolutePath()),fileNotFoundException);
  }
catch (  IOException e) {
    throw new ParserException(String.format("String_Node_Str",e.getMessage()),e);
  }
}
Program: 178544
Project: 178544
Buggy source:
/** 
 * @param file
 * @param testSet
 * @throws UnsupportedEncodingException
 * @throws FileNotFoundException
 * @throws IOException
 */
private void generateTapFile(File file,TestSet testSet){
  String fileName=file.getAbsolutePath();
  String tapFileName=fileName.replace(XML_EXT,TAP_EXT);
  DumperOptions options=new DumperOptions();
  options.setPrintDiagnostics(true);
  options.setCharset(charset.name());
  Producer tapProducer=TapProducerFactory.makeTap13YamlProducer();
  Writer out;
  try {
    out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tapFileName),charset));
    tapProducer.dump(testSet,out);
    out.close();
  }
 catch (  FileNotFoundException fileNotFoundException) {
    throw new ParserException("String_Node_Str" + tapFileName,fileNotFoundException);
  }
catch (  IOException e) {
    throw new ParserException("String_Node_Str" + e.getMessage(),e);
  }
}

Fixed version (ground truth):
/** 
 * @param file xml file
 * @param testSet TAP Test Set
 * @throws UnsupportedEncodingException
 * @throws FileNotFoundException
 * @throws IOException
 */
private void generateTapFile(File file,TestSet testSet){
  String fileName=file.getAbsolutePath();
  String tapFileName=fileName.replace(XML_EXT,TAP_EXT);
  DumperOptions options=new DumperOptions();
  options.setPrintDiagnostics(true);
  options.setCharset(charset.name());
  Producer tapProducer=TapProducerFactory.makeTap13YamlProducer();
  Writer out;
  try {
    out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tapFileName),charset));
    tapProducer.dump(testSet,out);
    out.close();
  }
 catch (  FileNotFoundException fileNotFoundException) {
    throw new ParserException(String.format("String_Node_Str",tapFileName),fileNotFoundException);
  }
catch (  IOException e) {
    throw new ParserException(String.format("String_Node_Str",e.getMessage()),e);
  }
}
Program: 178545
Project: 178545
Buggy source:
/** 
 * Set test info
 * @param description
 */
protected void setTestInfo(Description description){
  JUnitTestData testMethod=new JUnitTestData(false,false);
  testMethod.setDescription(description);
  if (!testMethodsList.contains(description))   testMethodsList.add(testMethod);
}

Fixed version (ground truth):
/** 
 * Set test info
 * @param description
 */
protected void setTestInfo(Description description){
  JUnitTestData testMethod=new JUnitTestData(false,false);
  testMethod.setDescription(description);
  if (!testMethodsList.contains(testMethod))   testMethodsList.add(testMethod);
}
Program: 178546
Project: 178546
Buggy source:
/** 
 * @param yamlish
 * @param testNgTestResult
 */
public static void createYAMLishActualAndExpected(Map<String,Object> yamlish,ITestResult testNgTestResult){
  String expected=TapTestNGYamlUtil.getExpected(testNgTestResult);
  String actual=TapTestNGYamlUtil.getActual(testNgTestResult);
  if (expected == null) {
    expected="String_Node_Str";
  }
  if (actual == null) {
    actual="String_Node_Str";
  }
  yamlish.put("String_Node_Str",actual);
  yamlish.put("String_Node_Str",expected);
}

Fixed version (ground truth):
/** 
 * @param yamlish
 * @param testNgTestResult
 */
public static void createYAMLishActualAndExpected(Map<String,Object> yamlish,ITestResult testNgTestResult){
  String expected=TapTestNGYamlUtil.getExpected(testNgTestResult);
  String actual=TapTestNGYamlUtil.getActual(testNgTestResult);
  if (expected == null) {
    expected="String_Node_Str";
  }
  yamlish.put("String_Node_Str",actual);
  yamlish.put("String_Node_Str",expected);
}
Program: 178547
Project: 178547
Buggy source:
/** 
 * @param testNgTestResult
 * @return Expected value
 */
public static String getExpected(ITestResult testNgTestResult){
  Throwable throwable=testNgTestResult.getThrowable();
  String expected=null;
  if (throwable != null) {
    StringWriter sw=new StringWriter();
    PrintWriter pw=new PrintWriter(sw);
    throwable.printStackTrace(pw);
    String stringException=sw.toString();
    String expectedToken="String_Node_Str";
    String butWasToken="String_Node_Str";
    int index=stringException.indexOf(expectedToken);
    if (index > 0) {
      expected=stringException.substring(index + expectedToken.length(),stringException.lastIndexOf(butWasToken));
      index=stringException.indexOf(butWasToken);
    }
  }
  return expected;
}

Fixed version (ground truth):
/** 
 * @param testNgTestResult
 * @return Expected value
 */
public static String getExpected(ITestResult testNgTestResult){
  Throwable throwable=testNgTestResult.getThrowable();
  String expected=null;
  if (throwable != null) {
    StringWriter sw=new StringWriter();
    PrintWriter pw=new PrintWriter(sw);
    throwable.printStackTrace(pw);
    String stringException=sw.toString();
    String expectedToken="String_Node_Str";
    String butWasToken="String_Node_Str";
    int index=stringException.indexOf(expectedToken);
    if (index > 0) {
      expected=stringException.substring(index + expectedToken.length(),stringException.lastIndexOf(butWasToken));
    }
  }
  return expected;
}
Program: 178549
Project: 178549
Buggy source:
/** 
 * Get the tap test description
 * @param testMethod
 * @return the tap test description
 */
public static String generateTAPTestResultDescription(JUnitTestData testMethod){
  final StringBuilder description=new StringBuilder();
  description.append("String_Node_Str");
  description.append(extractClassName(testMethod.getDescription()));
  description.append('#');
  description.append(extractMethodName(testMethod.getDescription()));
  return description.toString();
}

Fixed version (ground truth):
/** 
 * Get the tap test description
 * @param testMethod
 * @return the tap test description
 */
public static String generateTAPTestResultDescription(JUnitTestData testMethod){
  final StringBuilder description=new StringBuilder();
  description.append("String_Node_Str");
  description.append(extractClassName(testMethod.getDescription()));
  description.append(':');
  description.append(extractMethodName(testMethod.getDescription()));
  return description.toString();
}
Program: 178550
Project: 178550
Buggy source:
/** 
 * Generates a TAP TestResult description with full qualified class name concatenated with the character '#' and the test method.
 * @param testResult TestNG TestResult
 * @return Name of TAP Test Result
 */
public static String generateTAPTestResultDescription(ITestResult testResult){
  StringBuilder description=new StringBuilder();
  description.append("String_Node_Str");
  description.append(testResult.getTestClass().getName());
  description.append('#');
  description.append(testResult.getMethod().getMethodName());
  return description.toString();
}

Fixed version (ground truth):
/** 
 * Generates a TAP TestResult description with full qualified class name concatenated with the character ':' and the test method.
 * @param testResult TestNG TestResult
 * @return Name of TAP Test Result
 */
public static String generateTAPTestResultDescription(ITestResult testResult){
  StringBuilder description=new StringBuilder();
  description.append("String_Node_Str");
  description.append(testResult.getTestClass().getName());
  description.append(':');
  description.append(testResult.getMethod().getMethodName());
  return description.toString();
}
Program: 178551
Project: 178551
Buggy source:
/** 
 * <p> Checks if there is any diagnostic information on the diagnostic buffer. </p> <p> If so, tries to parse it using snakeyaml. </p>
 */
private void parseDiagnostics(){
  if (state.getDiagnosticBuffer().length() > 0) {
    if (state.getLastParsedElement() == null) {
      throw new ParserException("String_Node_Str");
    }
    try {
      @SuppressWarnings("String_Node_Str") Map<String,Object> metaIterable=(Map<String,Object>)new Yaml().load(state.getDiagnosticBuffer().toString());
      state.getLastParsedElement().setDiagnostic(metaIterable);
    }
 catch (    Exception ex) {
      throw new ParserException("String_Node_Str" + state.getDiagnosticBuffer().toString() + "String_Node_Str"+ ex.getMessage(),ex);
    }
  }
}

Fixed version (ground truth):
/** 
 * <p> Checks if there is any diagnostic information on the diagnostic buffer. </p> <p> If so, tries to parse it using snakeyaml. </p>
 */
private void parseDiagnostics(){
  if (state.getDiagnosticBuffer().length() > 0) {
    if (state.getLastParsedElement() == null) {
      throw new ParserException("String_Node_Str");
    }
    try {
      @SuppressWarnings("String_Node_Str") Map<String,Object> metaIterable=(Map<String,Object>)new Yaml().load(state.getDiagnosticBuffer().toString());
      state.getLastParsedElement().setDiagnostic(metaIterable);
    }
 catch (    Exception ex) {
      throw new ParserException("String_Node_Str" + state.getDiagnosticBuffer().toString() + "String_Node_Str"+ ex.getMessage(),ex);
    }
    this.state.getDiagnosticBuffer().setLength(0);
  }
}
Program: 178554
Project: 178554
Buggy source:
@Test public void testDoneTesting(){
  String tapStream="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  TestSet testSet=consumer.load(tapStream);
  assertEquals(testSet.getTestResults().size(),3);
}

Fixed version (ground truth):
@Test public void testDoneTesting(){
  String tapStream="String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str";
  TestSet testSet=consumer.load(tapStream);
  assertEquals(3,testSet.getTestResults().size());
}
Program: 178555
Project: 178555
Buggy source:
/** 
 * Appends a diagnostic line to diagnostic buffer. If the diagnostic line contains --- or ... then it ignores this line. In the end of each line it appends a break line.
 * @param diagnosticLine diagnostic line
 */
private void appendTapLineToDiagnosticBuffer(String diagnosticLine){
  if (diagnosticLine.trim().equals("String_Node_Str") || diagnosticLine.trim().equals("String_Node_Str")) {
    return;
  }
  if (state.isCurrentlyInYaml()) {
    state.getDiagnosticBuffer().append(diagnosticLine);
    state.getDiagnosticBuffer().append('\n');
  }
}

Fixed version (ground truth):
/** 
 * Appends a diagnostic line to diagnostic buffer. If the diagnostic line contains --- or ... then it ignores this line. In the end of each line it appends a break line.
 * @param diagnosticLine diagnostic line
 */
private void appendTapLineToDiagnosticBuffer(String diagnosticLine){
  if (state.isCurrentlyInYaml()) {
    state.getDiagnosticBuffer().append(diagnosticLine);
    state.getDiagnosticBuffer().append('\n');
  }
}
Program: 178556
Project: 178556
Buggy source:
@Test public void testYamlExitWithThreeDotsInYaml(){
  TapConsumer tapConsumer=TapConsumerFactory.makeTap13YamlConsumer();
  TestSet testSet=tapConsumer.load(new File(TestDirectives.class.getResource("String_Node_Str").getFile()));
  assertEquals(1,testSet.getTestResults().size());
  TestResult tr1=testSet.getTestResult(1);
  Map<String,Object> yaml=tr1.getDiagnostic();
  assertNotNull(yaml);
  String multiLineYaml=(String)yaml.get("String_Node_Str");
  assertThat(multiLineYaml,containsString("String_Node_Str"));
}

Fixed version (ground truth):
@Test public void testYamlExitWithThreeDotsInYaml(){
  TapConsumer tapConsumer=TapConsumerFactory.makeTap13YamlConsumer();
  TestSet testSet=tapConsumer.load(new File(TestDirectives.class.getResource("String_Node_Str").getFile()));
  assertEquals(1,testSet.getTestResults().size());
  TestResult tr1=testSet.getTestResult(1);
  Map<String,Object> yaml=tr1.getDiagnostic();
  assertNotNull(yaml);
  String multiLineYaml=(String)yaml.get("String_Node_Str");
  assertThat(multiLineYaml,is(equalTo("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str")));
}
Program: 178557
Project: 178557
Buggy source:
/** 
 * Internal parse routine.
 * @param stream Input Stream
 * @return Test Set
 */
protected TestSet parse(InputStream stream){
  state=new Memento();
  Scanner scanner=null;
  try {
    scanner=new Scanner(stream,this.encoding);
    String line=null;
    while (scanner.hasNextLine()) {
      line=scanner.nextLine();
      if (line != null && line.trim().length() > 0) {
        this.parseLine(line);
      }
    }
    this.onFinish();
  }
 catch (  Exception e) {
    throw new ParserException("String_Node_Str" + e.getMessage(),e);
  }
 finally {
    if (scanner != null) {
      scanner.close();
    }
  }
  return this.getTestSet();
}

Fixed version (ground truth):
/** 
 * Internal parse routine.
 * @param stream Input Stream
 * @return Test Set
 */
protected TestSet parse(InputStream stream){
  state=new Memento();
  Scanner scanner=null;
  try {
    scanner=new Scanner(stream,this.encoding);
    String line=null;
    while (scanner.hasNextLine()) {
      line=scanner.nextLine();
      if (line != null && line.length() > 0) {
        this.parseLine(line);
      }
    }
    this.onFinish();
  }
 catch (  Exception e) {
    throw new ParserException("String_Node_Str" + e.getMessage(),e);
  }
 finally {
    if (scanner != null) {
      scanner.close();
    }
  }
  return this.getTestSet();
}
Program: 178559
Project: 178559
Buggy source:
/** 
 * Called after the rest of the stream has been processed.
 */
private void onFinish(){
  if (getTestSet().getPlan() == null) {
    throw new ParserException("String_Node_Str");
  }
  parseDiagnostics();
  while (!this.states.isEmpty()) {
    this.popMemento();
  }
}

Fixed version (ground truth):
/** 
 * Called after the rest of the stream has been processed.
 */
private void onFinish(){
  if (this.planRequired == true) {
    if (getTestSet().getPlan() == null) {
      throw new ParserException("String_Node_Str");
    }
  }
  parseDiagnostics();
  while (!this.states.isEmpty()) {
    this.popMemento();
  }
}
Program: 178560
Project: 178560
Buggy source:
/** 
 * Called after the rest of the stream has been processed.
 */
private void onFinish(){
  if (getTestSet().getPlan() == null) {
    throw new ParserException("String_Node_Str");
  }
  parseDiagnostics();
}

Fixed version (ground truth):
/** 
 * Called after the rest of the stream has been processed.
 */
private void onFinish(){
  if (getTestSet().getPlan() == null) {
    throw new ParserException("String_Node_Str");
  }
  parseDiagnostics();
  while (!this.states.isEmpty()) {
    this.popMemento();
  }
}
Program: 178563
Project: 178563
Buggy source:
@Override protected PathEntry searchLib(final List<PathEntry> files,final String libId){
  final Pattern pattern=Pattern.compile("String_Node_Str" + Pattern.quote(libId) + "String_Node_Str");
  for (  final PathEntry entry : files) {
    if (pattern.matcher(entry.getPath()).matches()) {
      return entry;
    }
  }
  return null;
}

Fixed version (ground truth):
@Override protected PathEntry searchLib(final List<PathEntry> files,final String libId){
  final Pattern pattern=Pattern.compile("String_Node_Str" + File.separatorChar + Pattern.quote(libId)+ "String_Node_Str");
  for (  final PathEntry entry : files) {
    if (pattern.matcher(entry.getPath()).matches()) {
      return entry;
    }
  }
  return null;
}
Program: 178564
Project: 178564
Buggy source:
@Override public String getServerPolicyFilePath() throws RjInvalidConfigurationException {
  String path=this.servletContext.getRealPath("String_Node_Str");
  final int length=path.length();
  if ((length == 0) || ((path.charAt(length - 1) != '/') && (path.charAt(length - 1) != File.separatorChar))) {
    path=path + File.separatorChar;
  }
  return path + "String_Node_Str";
}

Fixed version (ground truth):
@Override public String getServerPolicyFilePath() throws RjInvalidConfigurationException {
  String path=servletContext.getRealPath("String_Node_Str");
  final int length=path.length();
  if ((length == 0) || ((path.charAt(length - 1) != '/') && (path.charAt(length - 1) != File.separatorChar))) {
    path=path + File.separatorChar;
  }
  return path + "String_Node_Str";
}
Program: 178566
Project: 178566
Buggy source:
@Override protected Object getPreAuthenticatedPrincipal(final HttpServletRequest request){
  final String clientDN=(String)getPreAuthenticatedCredentials(request);
  if (clientDN == null) {
    throw new IllegalStateException("String_Node_Str");
  }
  logger.debug("String_Node_Str" + clientDN + "String_Node_Str");
  final Matcher matcher=subjectDnPattern.matcher(clientDN);
  if (!matcher.find()) {
    throw new BadCredentialsException("String_Node_Str" + clientDN);
  }
  if (matcher.groupCount() != 1) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  final String username=matcher.group(1);
  logger.debug("String_Node_Str" + username + "String_Node_Str");
  return username;
}

Fixed version (ground truth):
@Override protected Object getPreAuthenticatedPrincipal(final HttpServletRequest request){
  final String clientDN=(String)getPreAuthenticatedCredentials(request);
  if (clientDN == null) {
    return null;
  }
  logger.debug("String_Node_Str" + clientDN + "String_Node_Str");
  final Matcher matcher=subjectDnPattern.matcher(clientDN);
  if (!matcher.find()) {
    throw new BadCredentialsException("String_Node_Str" + clientDN);
  }
  if (matcher.groupCount() != 1) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  final String username=matcher.group(1);
  logger.debug("String_Node_Str" + username + "String_Node_Str");
  return username;
}
Program: 178567
Project: 178567
Buggy source:
@Override protected Object getPreAuthenticatedCredentials(final HttpServletRequest request){
  if (!StringUtils.equals(request.getHeader(SSL_VERIFIED_HEADER),"String_Node_Str")) {
    throw new PreAuthenticatedCredentialsNotFoundException("String_Node_Str");
  }
  final String clientDN=StringUtils.trimToNull(request.getHeader(SSL_CLIENT_DN_HEADER));
  if (clientDN == null) {
    throw new PreAuthenticatedCredentialsNotFoundException(SSL_CLIENT_DN_HEADER + "String_Node_Str");
  }
  return clientDN;
}

Fixed version (ground truth):
@Override protected Object getPreAuthenticatedCredentials(final HttpServletRequest request){
  if (!StringUtils.equals(request.getHeader(SSL_VERIFIED_HEADER),"String_Node_Str")) {
    return null;
  }
  return StringUtils.trimToNull(request.getHeader(SSL_CLIENT_DN_HEADER));
}
Program: 178568
Project: 178568
Buggy source:
/** 
 * Sets the regular expression which will by used to extract the user name from the certificate's Subject DN. <p> It should contain a single group; for example the default expression "CN=(.*?)(?:,|$)" matches the common name field. So "CN=Jimi Hendrix, OU=..." will give a user name of "Jimi Hendrix". <p> The matches are case insensitive. So "emailAddress=(.?)," will match "EMAILADDRESS=jimi@hendrix.org, CN=..." giving a user name "jimi@hendrix.org"
 * @param subjectDnRegex the regular expression to find in the subject
 */
public void setSubjectDnRegex(final String subjectDnRegex){
  Assert.hasText(subjectDnRegex,"String_Node_Str");
  subjectDnPattern=Pattern.compile(subjectDnRegex,Pattern.CASE_INSENSITIVE);
}

Fixed version (ground truth):
/** 
 * Sets the regular expression which will by used to extract the user name from the certificate's Subject DN. <p> It should contain a single group; for example the default expression "CN=(.*?)(?:/|$)" matches the common name field. So "CN=Jimi Hendrix/OU=..." will give a user name of "Jimi Hendrix". <p> The matches are case insensitive. So "emailAddress=(.?)/" will match "EMAILADDRESS=jimi@hendrix.org/CN=..." giving a user name "jimi@hendrix.org"
 * @param subjectDnRegex the regular expression to find in the subject
 */
public void setSubjectDnRegex(final String subjectDnRegex){
  Assert.hasText(subjectDnRegex,"String_Node_Str");
  subjectDnPattern=Pattern.compile(subjectDnRegex,Pattern.CASE_INSENSITIVE);
}
Program: 178569
Project: 178569
Buggy source:
/** 
 * <p> </p>
 * @return
 */
private State resolve(){
  FrameworkProperties.setProperty("String_Node_Str","String_Node_Str");
  State state=StateObjectFactory.defaultFactory.createState(true);
  for (  BundleDescription bundleDescription : getAllBundleDescriptions(this._configuration.isPreferProjects())) {
    BundleDescription copy=StateObjectFactory.defaultFactory.createBundleDescription(bundleDescription);
    copy.setUserObject(bundleDescription.getUserObject());
    if (!state.addBundle(copy)) {
      throw new RuntimeException("String_Node_Str" + bundleDescription + "String_Node_Str");
    }
    if (A4ELogging.isTraceingEnabled()) {
      A4ELogging.trace("String_Node_Str",getBundleInfo(bundleDescription));
    }
  }
  Properties platformProperties=this._configuration.getConfigurationProperties();
  if (A4ELogging.isDebuggingEnabled()) {
    A4ELogging.debug(Utilities.toString("String_Node_Str",platformProperties));
  }
  state.setPlatformProperties(platformProperties);
  state.resolve();
  BundleDescription[] bundleDescriptions=state.getBundles();
  if (A4ELogging.isDebuggingEnabled()) {
    for (    BundleDescription description : bundleDescriptions) {
      String resolverErrors=dumpResolverErrors(description,true);
      if (resolverErrors != null && !resolverErrors.trim().equals("String_Node_Str")) {
        A4ELogging.debug(resolverErrors);
      }
    }
  }
  return state;
}

Fixed version (ground truth):
/** 
 * <p> </p>
 * @return
 */
private State resolve(){
  FrameworkProperties.setProperty("String_Node_Str","String_Node_Str");
  State state=StateObjectFactory.defaultFactory.createState(true);
  for (  BundleDescription bundleDescription : getAllBundleDescriptions(this._configuration.isPreferProjects())) {
    BundleDescription copy=StateObjectFactory.defaultFactory.createBundleDescription(bundleDescription);
    copy.setUserObject(bundleDescription.getUserObject());
    if (!state.addBundle(copy)) {
      throw new RuntimeException("String_Node_Str" + bundleDescription + "String_Node_Str");
    }
    if (A4ELogging.isTraceingEnabled()) {
      A4ELogging.trace("String_Node_Str",getBundleInfo(bundleDescription));
    }
  }
  Properties platformProperties=this._configuration.getConfigurationProperties();
  if (A4ELogging.isDebuggingEnabled()) {
    A4ELogging.debug(Utilities.toString("String_Node_Str",platformProperties));
  }
  state.setPlatformProperties(platformProperties);
  state.resolve();
  BundleDescription[] bundleDescriptions=state.getBundles();
  if (A4ELogging.isDebuggingEnabled()) {
    String resolverErrors=dumpResolverErrors(bundleDescriptions,true);
    if (resolverErrors != null && !resolverErrors.trim().equals("String_Node_Str")) {
      A4ELogging.debug(resolverErrors);
    }
  }
  return state;
}
Program: 178570
Project: 178570
Buggy source:
/** 
 * <p> Returns the resolver errors as a string. </p>
 * @param description the bundle description
 * @param dumpHeader indicates if the header should be dumped or not
 * @return the resolver errors as a string.
 */
public static String dumpResolverErrors(BundleDescription description,boolean dumpHeader){
  Assure.notNull("String_Node_Str",description);
  StringBuffer stringBuffer=new StringBuffer();
  State state=description.getContainingState();
  ResolverError[] errors=state.getResolverErrors(description);
  if (!description.isResolved() || ((errors != null) && (errors.length != 0))) {
    if ((errors != null) && (errors.length == 1) && (errors[0].getType() == ResolverError.SINGLETON_SELECTION)) {
      stringBuffer.append("String_Node_Str");
      stringBuffer.append(getBundleInfo(description));
      stringBuffer.append("String_Node_Str");
    }
 else {
      if (dumpHeader) {
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getSymbolicName());
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getVersion());
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getLocation());
        stringBuffer.append("String_Node_Str");
      }
      if (errors != null) {
        if (errors.length > 0) {
          for (int i=0; i < errors.length; i++) {
            stringBuffer.append("String_Node_Str");
            stringBuffer.append(errors[i]);
            if (i + 1 < errors.length) {
              stringBuffer.append("String_Node_Str");
            }
          }
        }
      }
    }
  }
  return stringBuffer.toString();
}

Fixed version (ground truth):
public static String dumpResolverErrors(BundleDescription[] descriptions,boolean dumpHeader){
  if (descriptions.length < 1) {
    return "String_Node_Str";
  }
  final StringBuilder result=new StringBuilder();
  for (  BundleDescription bundleDescription : descriptions) {
    result.append(dumpResolverErrors(bundleDescription,dumpHeader));
  }
  final State state=descriptions[0].getContainingState();
  if (Boolean.getBoolean("String_Node_Str")) {
    result.append(getUnresolvedLeaves(state,descriptions));
  }
  return result.toString();
}
Program: 178571
Project: 178571
Buggy source:
private Ant4EclipseException newBundleNotResolvedException(UnresolvedBundleException e,TargetPlatform targetPlatform){
  BundleDescription description=new UnresolvedBundlesAnalyzer(targetPlatform).getRootCause(e.getBundleDescription());
  return new Ant4EclipseException(PdeExceptionCode.BUNDLE_NOT_RESOLVED_EXCEPTION,TargetPlatformImpl.dumpResolverErrors(description,true));
}

Fixed version (ground truth):
private Ant4EclipseException newBundleNotResolvedException(UnresolvedBundleException e,TargetPlatform targetPlatform){
  return new Ant4EclipseException(PdeExceptionCode.BUNDLE_NOT_RESOLVED_EXCEPTION,TargetPlatformImpl.dumpResolverErrors(new BundleDescription[]{e.getBundleDescription()},true));
}
Program: 178572
Project: 178572
Buggy source:
private void dumpAll(String key,Comparator<StopWatch> comparator){
  List<StopWatch> stopwatches=new LinkedList<StopWatch>(this._managedStopWatches.values());
  Collections.sort(stopwatches,comparator);
  A4ELogging.info(stopwatches.size() + "String_Node_Str" + key);
  for (  StopWatch stopWatch : stopwatches) {
    stopWatch.stop();
    A4ELogging.info(String.format("String_Node_Str",stopWatch.getName(),(double)stopWatch.getElapsedTime() / 1000,stopWatch.getInvocations(),stopWatch.getAverageTime() / 1000));
  }
}

Fixed version (ground truth):
private void dumpAll(String key,Comparator<StopWatch> comparator){
  List<StopWatch> stopwatches=new LinkedList<StopWatch>(this._managedStopWatches.values());
  for (  StopWatch stopWatch : stopwatches) {
    stopWatch.stop();
  }
  Collections.sort(stopwatches,comparator);
  A4ELogging.info(stopwatches.size() + "String_Node_Str" + key);
  for (  StopWatch stopWatch : stopwatches) {
    A4ELogging.info(String.format("String_Node_Str",stopWatch.getName(),(double)stopWatch.getElapsedTime() / 1000,stopWatch.getInvocations(),stopWatch.getAverageTime() / 1000));
  }
}
Program: 178573
Project: 178573
Buggy source:
/** 
 * <p> Returns the source folder for the given source file. </p>
 * @param sourceFile the source file.
 * @return the source folder
 */
private File getSourceFolder(File sourceFile){
  String absolutePath=sourceFile.getAbsolutePath();
  A4ELogging.info("String_Node_Str",absolutePath);
  String[] srcDirs=getJavac().getSrcdir().list();
  for (  String srcDir : srcDirs) {
    A4ELogging.info("String_Node_Str",srcDir);
    if (absolutePath.startsWith(srcDir) && absolutePath.charAt(srcDir.length()) == File.separatorChar) {
      return new File(srcDir);
    }
  }
  throw new Ant4EclipseException(EcjExceptionCodes.SOURCE_FOLDER_FOR_SOURCE_FILE_DOES_NOT_EXIST,sourceFile.getAbsolutePath());
}

Fixed version (ground truth):
/** 
 * <p> Returns the source folder for the given source file. </p>
 * @param sourceFile the source file.
 * @return the source folder
 */
private File getSourceFolder(File sourceFile){
  String absolutePath=sourceFile.getAbsolutePath();
  String[] srcDirs=getJavac().getSrcdir().list();
  for (  String srcDir : srcDirs) {
    if (absolutePath.startsWith(srcDir) && absolutePath.charAt(srcDir.length()) == File.separatorChar) {
      return new File(srcDir);
    }
  }
  throw new Ant4EclipseException(EcjExceptionCodes.SOURCE_FOLDER_FOR_SOURCE_FILE_DOES_NOT_EXIST,sourceFile.getAbsolutePath());
}
Program: 178576
Project: 178576
Buggy source:
/** 
 * <p> Returns the resolver errors as a string. </p>
 * @param description the bundle description
 * @return the resolver errors as a string.
 */
public static String dumpResolverErrors(BundleDescription description,boolean header){
  Assert.notNull(description);
  StringBuffer stringBuffer=new StringBuffer();
  State state=description.getContainingState();
  ResolverError[] errors=state.getResolverErrors(description);
  if (!description.isResolved() || ((errors != null) && (errors.length != 0))) {
    if ((errors != null) && (errors.length == 1) && (errors[0].getType() == ResolverError.SINGLETON_SELECTION)) {
      stringBuffer.append("String_Node_Str");
      stringBuffer.append(getBundleInfo(description));
      stringBuffer.append("String_Node_Str");
    }
 else {
      if (header) {
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getSymbolicName());
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getVersion());
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getLocation());
        stringBuffer.append("String_Node_Str");
      }
      for (int i=0; i < errors.length; i++) {
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(errors[i]);
        if (i + 1 < errors.length) {
          stringBuffer.append("String_Node_Str");
        }
      }
    }
  }
  return stringBuffer.toString();
}

Fixed version (ground truth):
/** 
 * <p> Returns the resolver errors as a string. </p>
 * @param description the bundle description
 * @param dumpHeader indicates if the header should be dumped or not
 * @return the resolver errors as a string.
 */
public static String dumpResolverErrors(BundleDescription description,boolean dumpHeader){
  Assert.notNull(description);
  StringBuffer stringBuffer=new StringBuffer();
  State state=description.getContainingState();
  ResolverError[] errors=state.getResolverErrors(description);
  if (!description.isResolved() || ((errors != null) && (errors.length != 0))) {
    if ((errors != null) && (errors.length == 1) && (errors[0].getType() == ResolverError.SINGLETON_SELECTION)) {
      stringBuffer.append("String_Node_Str");
      stringBuffer.append(getBundleInfo(description));
      stringBuffer.append("String_Node_Str");
    }
 else {
      if (dumpHeader) {
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getSymbolicName());
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getVersion());
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(description.getLocation());
        stringBuffer.append("String_Node_Str");
      }
      for (int i=0; i < errors.length; i++) {
        stringBuffer.append("String_Node_Str");
        stringBuffer.append(errors[i]);
        if (i + 1 < errors.length) {
          stringBuffer.append("String_Node_Str");
        }
      }
    }
  }
  return stringBuffer.toString();
}
Program: 178578
Project: 178578
Buggy source:
/** 
 * <p> </p>
 * @param manifest
 * @param resolvedFeature
 */
private void resolveIncludes(FeatureManifest manifest,ResolvedFeature resolvedFeature){
  List<Pair<Includes,FeatureDescription>> result=new LinkedList<Pair<Includes,FeatureDescription>>();
  for (  Includes includes : manifest.getIncludes()) {
    FeatureDescription featureDescription=null;
    if (includes.getVersion().equals(Version.emptyVersion)) {
      featureDescription=getFeatureDescription(includes.getId());
    }
 else {
      featureDescription=getFeatureDescription(includes.getId(),includes.getVersion());
    }
    if (featureDescription == null) {
      throw new RuntimeException("String_Node_Str" + includes.getId() + "String_Node_Str"+ includes.getVersion()+ "String_Node_Str");
    }
 else {
      result.add(new Pair<Includes,FeatureDescription>(includes,featureDescription));
    }
  }
  resolvedFeature.setIncludesToFeatureDescriptionList(result);
}

Fixed version (ground truth):
/** 
 * <p> </p>
 * @param manifest
 * @param resolvedFeature
 */
private void resolveIncludes(FeatureManifest manifest,ResolvedFeature resolvedFeature){
  List<Pair<Includes,FeatureDescription>> result=new LinkedList<Pair<Includes,FeatureDescription>>();
  for (  Includes includes : manifest.getIncludes()) {
    if (matches(includes.getOperatingSystem(),includes.getMachineArchitecture(),includes.getWindowingSystem(),includes.getLocale())) {
      FeatureDescription featureDescription=null;
      if (includes.getVersion().equals(Version.emptyVersion)) {
        featureDescription=getFeatureDescription(includes.getId());
      }
 else {
        featureDescription=getFeatureDescription(includes.getId(),includes.getVersion());
      }
      if (featureDescription == null) {
        throw new RuntimeException("String_Node_Str" + includes.getId() + "String_Node_Str"+ includes.getVersion()+ "String_Node_Str");
      }
 else {
        result.add(new Pair<Includes,FeatureDescription>(includes,featureDescription));
      }
    }
  }
  resolvedFeature.setIncludesToFeatureDescriptionList(result);
}
Program: 178579
Project: 178579
Buggy source:
/** 
 * <p> Returns the   {@link ResolvedFeature}</p>
 * @param source
 * @param manifest
 * @return
 */
ResolvedFeature resolveFeature(Object source,FeatureManifest manifest);

Fixed version (ground truth):
/** 
 * <p> Returns the   {@link ResolvedFeature}</p>
 * @param source
 * @param manifest
 * @return returns the resolved feature
 */
ResolvedFeature resolveFeature(Object source,FeatureManifest manifest);
Program: 178580
Project: 178580
Buggy source:
public ClassFile loadClass(ClassName className){
  List<ClassFileLoader> classFileLoaderList=this._allPackages.get(className.getPackageName());
  if (classFileLoaderList == null) {
    return null;
  }
  for (  ClassFileLoader classFileLoader : classFileLoaderList) {
    ClassFile classFile=classFileLoader.loadClass(className);
    if (classFile != null) {
      return classFile;
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
public ClassFile loadClass(ClassName className){
  List<ClassFileLoader> classFileLoaderList=this._allPackages.get(className.getPackageName());
  if (classFileLoaderList == null) {
    return null;
  }
  ClassFile result=null;
  for (  ClassFileLoader classFileLoader : classFileLoaderList) {
    ClassFile classFile=classFileLoader.loadClass(className);
    if (classFile != null) {
      if (!classFile.hasAccessRestriction()) {
        return classFile;
      }
 else       if (result == null) {
        result=classFile;
      }
    }
  }
  return result;
}
Program: 178581
Project: 178581
Buggy source:
/** 
 * <p> </p>
 * @param className
 * @return
 */
public ReferableSourceFile loadSourceFile(ClassName className){
  for (  File classpathEntry : this._sourcepathEntries) {
    if (classpathEntry.isDirectory()) {
      File packageDir=new File(classpathEntry,className.getPackageAsDirectoryName());
      if (packageDir.isDirectory()) {
        for (        String name : packageDir.list()) {
          if (className.asSourceFileName().endsWith(name)) {
            return new ReferableSourceFileImpl(classpathEntry,className.asSourceFileName().replace('/',File.separatorChar).replace('\\',File.separatorChar),classpathEntry.getAbsolutePath(),ClasspathClassFileLoaderImpl.this._type);
          }
        }
      }
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * <p> </p>
 * @param className
 * @return
 */
public ReferableSourceFile loadSourceFile(ClassName className){
  String javaFileName=className.getClassName() + "String_Node_Str";
  for (  File classpathEntry : this._sourcepathEntries) {
    if (classpathEntry.isDirectory()) {
      File packageDir=new File(classpathEntry,className.getPackageAsDirectoryName());
      if (packageDir.isDirectory()) {
        for (        String name : packageDir.list()) {
          if (javaFileName.equals(name) && new File(classpathEntry,className.asSourceFileName().replace('/',File.separatorChar).replace('\\',File.separatorChar)).exists()) {
            return new ReferableSourceFileImpl(classpathEntry,className.asSourceFileName().replace('/',File.separatorChar).replace('\\',File.separatorChar),classpathEntry.getAbsolutePath(),ClasspathClassFileLoaderImpl.this._type);
          }
        }
      }
    }
  }
  return null;
}
Program: 178582
Project: 178582
Buggy source:
public NameEnvironmentAnswer findType(char[] typeName,char[][] packageName){
  A4ELogging.trace("String_Node_Str",new String(typeName),asString(packageName));
  StringBuffer result=new StringBuffer();
  if (packageName != null) {
    for (    char[] element : packageName) {
      result.append(new String(element)).append("String_Node_Str");
    }
  }
  result.append(new String(typeName));
  return findClass(result.toString());
}

Fixed version (ground truth):
public NameEnvironmentAnswer findType(char[] typeName,char[][] packageName){
  StringBuffer result=new StringBuffer();
  if (packageName != null) {
    for (    char[] element : packageName) {
      result.append(new String(element)).append("String_Node_Str");
    }
  }
  result.append(new String(typeName));
  return findClass(result.toString());
}
Program: 178583
Project: 178583
Buggy source:
/** 
 * This method returns true if the given packageName is a valid package. <p> Note that this method returns true regardless of any OSGi visibility constraints. <p> This method also returns true for top level packages
 * @see org.eclipse.jdt.internal.compiler.env.INameEnvironment#isPackage(char[][],char[])
 */
public boolean isPackage(char[][] parentPackageName,char[] packageName){
  A4ELogging.trace("String_Node_Str",asString(parentPackageName),new String(packageName));
  String qualifiedPackageName=toJavaName(parentPackageName);
  if (qualifiedPackageName.length() > 0) {
    qualifiedPackageName+="String_Node_Str" + new String(packageName);
  }
 else {
    qualifiedPackageName=new String(packageName);
  }
  boolean packageFound=this._classFileLoader.hasPackage(qualifiedPackageName);
  A4ELogging.trace("String_Node_Str",new Object[]{qualifiedPackageName,"String_Node_Str" + packageFound});
  return packageFound;
}

Fixed version (ground truth):
/** 
 * This method returns true if the given packageName is a valid package. <p> Note that this method returns true regardless of any OSGi visibility constraints. <p> This method also returns true for top level packages
 * @see org.eclipse.jdt.internal.compiler.env.INameEnvironment#isPackage(char[][],char[])
 */
public boolean isPackage(char[][] parentPackageName,char[] packageName){
  String qualifiedPackageName=toJavaName(parentPackageName);
  if (qualifiedPackageName.length() > 0) {
    qualifiedPackageName+="String_Node_Str" + new String(packageName);
  }
 else {
    qualifiedPackageName=new String(packageName);
  }
  boolean packageFound=this._classFileLoader.hasPackage(qualifiedPackageName);
  return packageFound;
}
Program: 178584
Project: 178584
Buggy source:
/** 
 * <p> Returns a   {@link NameEnvironmentAnswer} for the class that is represented by the given {@link ClassName} instance.</p>
 * @param className represents the class name
 * @return a {@link NameEnvironmentAnswer}
 */
protected NameEnvironmentAnswer findClass(ClassName className){
  ClassFile classFile=this._classFileLoader.loadClass(className);
  if (classFile != null) {
    return new NameEnvironmentAnswer(classFile.getBinaryType(),(classFile.hasAccessRestriction() ? classFile.getAccessRestriction() : null));
  }
  SourceFile sourceFile=this._classFileLoader.loadSource(className);
  if (sourceFile != null) {
    return new NameEnvironmentAnswer(new CompilationUnitImpl(sourceFile),null);
  }
  return null;
}

Fixed version (ground truth):
/** 
 * <p> Returns a   {@link NameEnvironmentAnswer} for the class that is represented by the given {@link ClassName} instance.</p>
 * @param className represents the class name
 * @return a {@link NameEnvironmentAnswer}
 */
protected NameEnvironmentAnswer findClass(ClassName className){
  ClassFile classFile=this._classFileLoader.loadClass(className);
  if (classFile != null) {
    if (A4ELogging.isTraceingEnabled()) {
      A4ELogging.trace("String_Node_Str",className.getQualifiedClassName(),classFile.getLibraryLocation());
    }
    return new NameEnvironmentAnswer(classFile.getBinaryType(),(classFile.hasAccessRestriction() ? classFile.getAccessRestriction() : null));
  }
  SourceFile sourceFile=this._classFileLoader.loadSource(className);
  if (sourceFile != null) {
    if (A4ELogging.isTraceingEnabled()) {
      A4ELogging.trace("String_Node_Str",className.getQualifiedClassName(),sourceFile.getSourceFile().getAbsolutePath());
    }
    return new NameEnvironmentAnswer(new CompilationUnitImpl(sourceFile),null);
  }
  return null;
}
Program: 178585
Project: 178585
Buggy source:
/** 
 * <p> </p>
 * @param className
 * @return
 */
public ReferableSourceFile loadSourceFile(ClassName className){
  for (  File file : this._sourcepathEntries) {
    File classpathEntry=file;
    if (classpathEntry.isDirectory()) {
      File result=new File(classpathEntry,className.asSourceFileName());
      if (result.exists()) {
        return new ReferableSourceFileImpl(classpathEntry,className.asSourceFileName().replace('/',File.separatorChar).replace('\\',File.separatorChar),classpathEntry.getAbsolutePath(),ClasspathClassFileLoaderImpl.this._type);
      }
    }
  }
  return null;
}

Fixed version (ground truth):
/** 
 * <p> </p>
 * @param className
 * @return
 */
public ReferableSourceFile loadSourceFile(ClassName className){
  for (  File classpathEntry : this._sourcepathEntries) {
    if (classpathEntry.isDirectory()) {
      File packageDir=new File(classpathEntry,className.getPackageAsDirectoryName());
      if (packageDir.isDirectory()) {
        for (        String name : packageDir.list()) {
          if (className.asSourceFileName().endsWith(name)) {
            return new ReferableSourceFileImpl(classpathEntry,className.asSourceFileName().replace('/',File.separatorChar).replace('\\',File.separatorChar),classpathEntry.getAbsolutePath(),ClasspathClassFileLoaderImpl.this._type);
          }
        }
      }
    }
  }
  return null;
}
Program: 178586
Project: 178586
Buggy source:
/** 
 * <p> </p>
 * @param classFileLoader
 * @param filter
 */
public FilteringClassFileLoader(ClassFileLoader classFileLoader,String filter){
  Assert.notNull(this._classFileLoader);
  Assert.nonEmpty(filter);
  this._classFileLoader=classFileLoader;
  this._filter=filter;
  this._includes=new LinkedList<String>();
  this._excludes=new LinkedList<String>();
  init();
}

Fixed version (ground truth):
/** 
 * <p> </p>
 * @param classFileLoader
 * @param filter
 */
public FilteringClassFileLoader(ClassFileLoader classFileLoader,String filter){
  Assert.notNull(classFileLoader);
  Assert.nonEmpty(filter);
  this._classFileLoader=classFileLoader;
  this._filter=filter;
  this._includes=new LinkedList<String>();
  this._excludes=new LinkedList<String>();
  init();
}
Program: 178587
Project: 178587
Buggy source:
/** 
 * <p> </p>
 * @param sourceFile
 * @param lineNumber
 * @param sourceStart
 * @param sourceEnd
 * @return
 */
private String[] readProblematicLine(SourceFile sourceFile,CategorizedProblem categorizedProblem){
  Assert.notNull(sourceFile);
  Assert.notNull(categorizedProblem);
  int lineNumber=categorizedProblem.getSourceLineNumber();
  int sourceStart=categorizedProblem.getSourceStart();
  int sourceEnd=categorizedProblem.getSourceEnd();
  try {
    FileInputStream fstream=new FileInputStream(sourceFile.getSourceFile());
    DataInputStream in=new DataInputStream(fstream);
    BufferedReader br=new BufferedReader(new InputStreamReader(in));
    int lineStart=0;
    String strLine="String_Node_Str";
    for (int i=0; i < lineNumber; i++) {
      String newLine=br.readLine();
      lineStart=lineStart + strLine.length();
      if (i + 1 != lineNumber) {
        lineStart=lineStart + 1;
      }
      strLine=newLine;
    }
    in.close();
    StringBuilder underscoreLine=new StringBuilder();
    for (int i=lineStart; i < sourceStart; i++) {
      underscoreLine.append(' ');
    }
    for (int i=sourceStart; i <= sourceEnd; i++) {
      underscoreLine.append('^');
    }
    return new String[]{strLine,underscoreLine.toString()};
  }
 catch (  Exception e) {
    return new String[]{"String_Node_Str","String_Node_Str"};
  }
}

Fixed version (ground truth):
/** 
 * <p> </p>
 * @param sourceFile
 * @param lineNumber
 * @param sourceStart
 * @param sourceEnd
 * @return
 */
private String[] readProblematicLine(SourceFile sourceFile,CategorizedProblem categorizedProblem){
  Assert.notNull(sourceFile);
  Assert.notNull(categorizedProblem);
  int lineNumber=categorizedProblem.getSourceLineNumber();
  int sourceStart=categorizedProblem.getSourceStart();
  int sourceEnd=categorizedProblem.getSourceEnd();
  try {
    FileInputStream fstream=new FileInputStream(sourceFile.getSourceFile());
    DataInputStream in=new DataInputStream(fstream);
    BufferedReader br=new BufferedReader(new InputStreamReader(in));
    int lineStart=0;
    String strLine="String_Node_Str";
    for (int i=0; i < lineNumber; i++) {
      String newLine=br.readLine();
      lineStart=lineStart + strLine.length();
      if (i + 1 != lineNumber) {
        lineStart=lineStart + 1;
      }
      strLine=newLine;
    }
    in.close();
    StringBuilder underscoreLine=new StringBuilder();
    for (int i=lineStart; i < sourceStart; i++) {
      if (strLine.charAt(i - lineStart) == '\t') {
        underscoreLine.append('\t');
      }
 else {
        underscoreLine.append(' ');
      }
    }
    for (int i=sourceStart; i <= sourceEnd; i++) {
      underscoreLine.append('^');
    }
    return new String[]{strLine,underscoreLine.toString()};
  }
 catch (  Exception e) {
    return new String[]{"String_Node_Str","String_Node_Str"};
  }
}