Program: 108453
Project: 108453
Buggy source:
/** 
 * Semantics of method name: monotonicity of criteria + monotonicity of metric
 * @param lattice
 * @param checker
 * @param strategy
 * @return
 */
private static AbstractAlgorithm createFullNone(final Lattice lattice,final INodeChecker checker,final FLASHStrategy strategy){
  int binaryAnonymityProperty=Node.PROPERTY_ANONYMOUS;
  NodeTrigger binaryTriggerSkip=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
  }
;
  NodeTrigger binaryTriggerTag=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
    public void action(    Node node){
      if (node.hasProperty(Node.PROPERTY_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_ANONYMOUS);
      }
 else {
        lattice.setPropertyDownwards(node,false,Node.PROPERTY_NOT_ANONYMOUS);
      }
    }
  }
;
  NodeTrigger binaryTriggerSnapshotStore=History.STORAGE_TRIGGER_NON_ANONYMOUS;
  NodeTrigger binaryTriggerSnapshotEvict=History.EVICTION_TRIGGER_ANONYMOUS;
  NodeTrigger binaryTriggerCheck=new NodeTriggerInverse(binaryTriggerSkip);
  NodeTrigger binaryTriggerEvaluate=new NodeTriggerConstant(false);
  int linearAnonymityProperty=Node.PROPERTY_ANONYMOUS;
  NodeTrigger linearTriggerSkip=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_CHECKED) || node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
  }
;
  NodeTrigger linearTriggerSnapshotStore=History.STORAGE_TRIGGER_ALL;
  NodeTrigger linearTriggerSnapshotEvict=History.EVICTION_TRIGGER_CHECKED;
  NodeTrigger linearTriggerEvaluate=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return checker.getMetric().isIndependent() && !node.hasProperty(Node.PROPERTY_CHECKED) && !node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
  }
;
  NodeTrigger linearTriggerCheck=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return !checker.getMetric().isIndependent() && !node.hasProperty(Node.PROPERTY_CHECKED) && !node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
  }
;
  NodeTrigger linearTriggerTag=new NodeTriggerConstant(false);
  FLASHConfiguration binaryConfiguration=new FLASHConfiguration(binaryAnonymityProperty,binaryTriggerTag,binaryTriggerCheck,binaryTriggerEvaluate,binaryTriggerSkip,binaryTriggerSnapshotStore,binaryTriggerSnapshotEvict);
  FLASHConfiguration linearConfiguration=new FLASHConfiguration(linearAnonymityProperty,linearTriggerTag,linearTriggerCheck,linearTriggerEvaluate,linearTriggerSkip,linearTriggerSnapshotStore,linearTriggerSnapshotEvict);
  return new FLASHAlgorithmImpl(lattice,checker,strategy,binaryConfiguration,linearConfiguration);
}

Fixed version (ground truth):
/** 
 * Semantics of method name: monotonicity of criteria + monotonicity of metric
 * @param lattice
 * @param checker
 * @param strategy
 * @return
 */
private static AbstractAlgorithm createFullNone(final Lattice lattice,final INodeChecker checker,final FLASHStrategy strategy){
  int binaryAnonymityProperty=Node.PROPERTY_ANONYMOUS;
  NodeTrigger binaryTriggerSkip=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
  }
;
  NodeTrigger binaryTriggerTag=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
    public void action(    Node node){
      if (node.hasProperty(Node.PROPERTY_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_ANONYMOUS);
      }
 else {
        lattice.setPropertyDownwards(node,false,Node.PROPERTY_NOT_ANONYMOUS);
      }
    }
  }
;
  NodeTrigger binaryTriggerSnapshotStore=History.STORAGE_TRIGGER_NON_ANONYMOUS;
  NodeTrigger binaryTriggerSnapshotEvict=History.EVICTION_TRIGGER_ANONYMOUS;
  NodeTrigger binaryTriggerCheck=new NodeTriggerInverse(binaryTriggerSkip);
  NodeTrigger binaryTriggerEvaluate=new NodeTriggerConstant(false);
  int linearAnonymityProperty=Node.PROPERTY_ANONYMOUS;
  NodeTrigger linearTriggerSkip=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS) || node.hasProperty(Node.PROPERTY_VISITED);
    }
  }
;
  NodeTrigger linearTriggerSnapshotStore=History.STORAGE_TRIGGER_ALL;
  NodeTrigger linearTriggerSnapshotEvict=History.EVICTION_TRIGGER_CHECKED;
  NodeTrigger linearTriggerEvaluate=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return checker.getMetric().isIndependent() && !node.hasProperty(Node.PROPERTY_CHECKED) && !node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
  }
;
  NodeTrigger linearTriggerCheck=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return !checker.getMetric().isIndependent() && !node.hasProperty(Node.PROPERTY_CHECKED) && !node.hasProperty(Node.PROPERTY_NOT_ANONYMOUS);
    }
  }
;
  NodeTrigger linearTriggerTag=new NodeTrigger(){
    public boolean appliesTo(    Node node){
      return true;
    }
    public void action(    Node node){
      node.setProperty(Node.PROPERTY_VISITED);
    }
  }
;
  FLASHConfiguration binaryConfiguration=new FLASHConfiguration(binaryAnonymityProperty,binaryTriggerTag,binaryTriggerCheck,binaryTriggerEvaluate,binaryTriggerSkip,binaryTriggerSnapshotStore,binaryTriggerSnapshotEvict);
  FLASHConfiguration linearConfiguration=new FLASHConfiguration(linearAnonymityProperty,linearTriggerTag,linearTriggerCheck,linearTriggerEvaluate,linearTriggerSkip,linearTriggerSnapshotStore,linearTriggerSnapshotEvict);
  return new FLASHAlgorithmImpl(lattice,checker,strategy,binaryConfiguration,linearConfiguration);
}