Program: 13057
Project: 13057
Buggy source:
static VertexPredicateFilter<String,String> createVertexFilter(final FilterType filter,final Map<String,DataMatcher> matcherMap,final Map<String,GraphMLMetadata<String>> vertexMetadata,final Graph<String,String> graph1){
  return new VertexPredicateFilter<String,String>(new Predicate<String>(){
    public boolean evaluate(    String v){
      if (graph1.getIncidentEdges(v).isEmpty()) {
        return false;
      }
 else {
        if (filter == null)         return true;
        List<IncludeType> includes=filter.getInclude();
        String filterType=filter.getType();
        if (filterType == null) {
          filterType="String_Node_Str";
        }
        boolean hasNodeInlcude=false;
        for (        IncludeType include : includes) {
          if (ForType.NODE.equals(include.getFor())) {
            String matcher=include.getMatcher();
            if (matcher == null) {
              matcher="String_Node_Str";
            }
            if (include.getClassType() == null) {
              final String dataKey=include.getDataKey();
              if (dataKey == null) {
                hasNodeInlcude=true;
                continue;
              }
              if (vertexMetadata.get(dataKey) == null) {
                throw new RuntimeException("String_Node_Str" + dataKey);
              }
              String value=vertexMetadata.get(dataKey).transformer.transform(v);
              if (value != null) {
                String[] dataValues=value.split("String_Node_Str");
                String includeDataValue=include.getDataValue();
                DataMatcher matcherInstance=matcherMap.get(matcher);
                if ("String_Node_Str".equals(filterType)) {
                  for (                  String dataValue : dataValues) {
                    hasNodeInlcude=false;
                    if (matcherInstance.compareData(dataValue,includeDataValue)) {
                      logger.debug("String_Node_Str" + v + "String_Node_Str"+ filter.getName()+ "String_Node_Str"+ include.getDataKey()+ "String_Node_Str"+ dataValue);
                      hasNodeInlcude=true;
                    }
                  }
                  if (!hasNodeInlcude) {
                    return false;
                  }
                }
 else {
                  for (                  String dataValue : dataValues) {
                    if (matcherInstance.compareData(dataValue,includeDataValue)) {
                      logger.debug("String_Node_Str" + v + "String_Node_Str"+ filter.getName()+ "String_Node_Str"+ include.getDataKey()+ "String_Node_Str"+ dataValue);
                      hasNodeInlcude=true;
                    }
 else {
                      logger.debug("String_Node_Str" + v + "String_Node_Str"+ filter.getName()+ "String_Node_Str"+ include.getDataKey()+ "String_Node_Str"+ dataValue);
                    }
                  }
                }
              }
            }
 else {
              String type=include.getClassType();
              Class<?> includeClazz;
              try {
                includeClazz=Class.forName(type);
                VertexIncluder includeInst=(VertexIncluder)includeClazz.newInstance();
                boolean hasToInlcude=includeInst.hasToInclude(v,vertexMetadata,graph1);
                if ("String_Node_Str".equals(filterType)) {
                  if (!hasToInlcude) {
                    return false;
                  }
                }
 else {
                  if (hasToInlcude) {
                    hasNodeInlcude=true;
                  }
                }
              }
 catch (              ClassNotFoundException e) {
                e.printStackTrace();
                return false;
              }
catch (              InstantiationException e) {
                e.printStackTrace();
                return false;
              }
catch (              IllegalAccessException e) {
                e.printStackTrace();
                return false;
              }
            }
          }
        }
        if (!hasNodeInlcude) {
          System.out.println("String_Node_Str" + v + "String_Node_Str");
          return false;
        }
 else {
          System.out.println("String_Node_Str" + v + "String_Node_Str");
          return true;
        }
      }
    }
  }
);
}

Fixed version (ground truth):
static VertexPredicateFilter<String,String> createVertexFilter(final FilterType filter,final Map<String,DataMatcher> matcherMap,final Map<String,GraphMLMetadata<String>> vertexMetadata,final Graph<String,String> graph1){
  return new VertexPredicateFilter<String,String>(new Predicate<String>(){
    public boolean evaluate(    String v){
      if (graph1.getIncidentEdges(v).isEmpty()) {
        return false;
      }
 else {
        if (filter == null)         return true;
        List<IncludeType> includes=filter.getInclude();
        String filterType=filter.getType();
        if (filterType == null) {
          filterType="String_Node_Str";
        }
        boolean hasNodeInlcude=false;
        for (        IncludeType include : includes) {
          if (ForType.NODE.equals(include.getFor())) {
            String matcher=include.getMatcher();
            if (matcher == null) {
              matcher="String_Node_Str";
            }
            if (include.getClassType() == null) {
              final String dataKey=include.getDataKey();
              if (dataKey == null) {
                hasNodeInlcude=true;
                continue;
              }
              if (vertexMetadata.get(dataKey) == null) {
                logger.debug("String_Node_Str" + dataKey);
                continue;
              }
              String value=vertexMetadata.get(dataKey).transformer.transform(v);
              if (value != null) {
                String[] dataValues=value.split("String_Node_Str");
                String includeDataValue=include.getDataValue();
                DataMatcher matcherInstance=matcherMap.get(matcher);
                if ("String_Node_Str".equals(filterType)) {
                  for (                  String dataValue : dataValues) {
                    hasNodeInlcude=false;
                    if (matcherInstance.compareData(dataValue,includeDataValue)) {
                      logger.debug("String_Node_Str" + v + "String_Node_Str"+ filter.getName()+ "String_Node_Str"+ include.getDataKey()+ "String_Node_Str"+ dataValue);
                      hasNodeInlcude=true;
                    }
                  }
                  if (!hasNodeInlcude) {
                    return false;
                  }
                }
 else {
                  for (                  String dataValue : dataValues) {
                    if (matcherInstance.compareData(dataValue,includeDataValue)) {
                      logger.debug("String_Node_Str" + v + "String_Node_Str"+ filter.getName()+ "String_Node_Str"+ include.getDataKey()+ "String_Node_Str"+ dataValue);
                      hasNodeInlcude=true;
                    }
 else {
                      logger.debug("String_Node_Str" + v + "String_Node_Str"+ filter.getName()+ "String_Node_Str"+ include.getDataKey()+ "String_Node_Str"+ dataValue);
                    }
                  }
                }
              }
            }
 else {
              String type=include.getClassType();
              Class<?> includeClazz;
              try {
                includeClazz=Class.forName(type);
                VertexIncluder includeInst=(VertexIncluder)includeClazz.newInstance();
                boolean hasToInlcude=includeInst.hasToInclude(v,vertexMetadata,graph1);
                if ("String_Node_Str".equals(filterType)) {
                  if (!hasToInlcude) {
                    return false;
                  }
                }
 else {
                  if (hasToInlcude) {
                    hasNodeInlcude=true;
                  }
                }
              }
 catch (              ClassNotFoundException e) {
                e.printStackTrace();
                return false;
              }
catch (              InstantiationException e) {
                e.printStackTrace();
                return false;
              }
catch (              IllegalAccessException e) {
                e.printStackTrace();
                return false;
              }
            }
          }
        }
        if (!hasNodeInlcude) {
          System.out.println("String_Node_Str" + v + "String_Node_Str");
          return false;
        }
 else {
          System.out.println("String_Node_Str" + v + "String_Node_Str");
          return true;
        }
      }
    }
  }
);
}