Program: 109447
Project: 109447
Buggy source:
@Test public void testJavaClassCondition() throws IOException, InstantiationException, IllegalAccessException {
  final Path outputPath=getDefaultPath();
  try (GraphContext context=factory.create(outputPath)){
    final String inputDir="String_Node_Str";
    FileUtils.deleteDirectory(outputPath.toFile());
    Files.createDirectories(outputPath);
    final WindupConfiguration processorConfig=new WindupConfiguration().setOutputDirectory(outputPath);
    processorConfig.setGraphContext(context);
    processorConfig.setInputPath(Paths.get(inputDir));
    processorConfig.setOutputDirectory(outputPath);
    processorConfig.setOptionValue(ScanPackagesOption.NAME,Collections.singletonList("String_Node_Str"));
    processorConfig.setRuleProviderFilter(new NotPredicate(new EnumeratedRuleProviderPredicate(FindUnboundJavaReferencesRuleProvider.class)));
    processor.execute(processorConfig);
    GraphService<JavaTypeReferenceModel> typeRefService=new GraphService<>(context,JavaTypeReferenceModel.class);
    Iterable<JavaTypeReferenceModel> typeReferences=typeRefService.findAll();
    int count=0;
    for (    JavaTypeReferenceModel ref : typeReferences) {
      String sourceSnippit=ref.getResolvedSourceSnippit();
      if (sourceSnippit.contains("String_Node_Str"))       count++;
    }
    Assert.assertTrue(count > 9);
    GraphService<InlineHintModel> hintService=new GraphService<>(context,InlineHintModel.class);
    Iterable<InlineHintModel> hints=hintService.findAll();
    count=0;
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str"))       count++;
    }
    Assert.assertEquals(1,count);
    count=0;
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str")) {
        if (hint.getFileLocationReference().getSourceSnippit().contains("String_Node_Str")) {
          Assert.assertTrue(hint.getHint().contains("String_Node_Str"));
          count++;
        }
 else         Assert.fail("String_Node_Str");
      }
    }
    Assert.assertEquals(1,count);
    count=0;
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str")) {
        if (hint.getFileLocationReference().getSourceSnippit().contains("String_Node_Str"))         count++;
 else         Assert.fail("String_Node_Str");
      }
    }
    Assert.assertEquals(1,count);
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str")) {
        Assert.fail("String_Node_Str");
      }
    }
  }
 }

Fixed version (ground truth):
@Test public void testJavaClassCondition() throws IOException, InstantiationException, IllegalAccessException {
  final Path outputPath=getDefaultPath();
  try (GraphContext context=factory.create(outputPath)){
    final String inputDir="String_Node_Str";
    FileUtils.deleteDirectory(outputPath.toFile());
    Files.createDirectories(outputPath);
    final WindupConfiguration processorConfig=new WindupConfiguration().setOutputDirectory(outputPath);
    processorConfig.setGraphContext(context);
    processorConfig.setInputPath(Paths.get(inputDir));
    processorConfig.setOutputDirectory(outputPath);
    processorConfig.setOptionValue(ScanPackagesOption.NAME,Collections.singletonList("String_Node_Str"));
    processorConfig.setOptionValue(EnableClassNotFoundAnalysisOption.NAME,true);
    processorConfig.setRuleProviderFilter(new NotPredicate(new EnumeratedRuleProviderPredicate(FindUnboundJavaReferencesRuleProvider.class)));
    processor.execute(processorConfig);
    GraphService<JavaTypeReferenceModel> typeRefService=new GraphService<>(context,JavaTypeReferenceModel.class);
    Iterable<JavaTypeReferenceModel> typeReferences=typeRefService.findAll();
    int count=0;
    for (    JavaTypeReferenceModel ref : typeReferences) {
      String sourceSnippit=ref.getResolvedSourceSnippit();
      if (sourceSnippit.contains("String_Node_Str"))       count++;
    }
    Assert.assertTrue(count > 9);
    GraphService<InlineHintModel> hintService=new GraphService<>(context,InlineHintModel.class);
    Iterable<InlineHintModel> hints=hintService.findAll();
    count=0;
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str"))       count++;
    }
    Assert.assertEquals(1,count);
    count=0;
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str")) {
        if (hint.getFileLocationReference().getSourceSnippit().contains("String_Node_Str")) {
          Assert.assertTrue(hint.getHint().contains("String_Node_Str"));
          count++;
        }
 else         Assert.fail("String_Node_Str");
      }
    }
    Assert.assertEquals(1,count);
    count=0;
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str")) {
        if (hint.getFileLocationReference().getSourceSnippit().contains("String_Node_Str"))         count++;
 else         Assert.fail("String_Node_Str");
      }
    }
    Assert.assertEquals(1,count);
    for (    InlineHintModel hint : hints) {
      if (hint.getHint().contains("String_Node_Str")) {
        Assert.fail("String_Node_Str");
      }
    }
  }
 }