Program: 108379
Project: 108379
Buggy source:
/** 
 * Semantics of method name: monotonicity of criteria + monotonicity of metric
 * @param lattice
 * @param checker
 * @param strategy
 * @return
 */
private static AbstractAlgorithm createPartialFull(final Lattice lattice,final INodeChecker checker,final FLASHStrategy strategy){
  int binaryAnonymityProperty=Node.PROPERTY_K_ANONYMOUS;
  NodeAction binaryTriggerSkip=new NodeAction(){
    @Override public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_INSUFFICIENT_UTILITY);
    }
  }
;
  NodeAction binaryTriggerTag=new NodeAction(){
    @Override public void action(    Node node){
      if (node.hasProperty(Node.PROPERTY_K_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_K_ANONYMOUS);
      }
 else {
        lattice.setPropertyDownwards(node,false,Node.PROPERTY_NOT_K_ANONYMOUS);
      }
      if (node.hasProperty(Node.PROPERTY_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_INSUFFICIENT_UTILITY | Node.PROPERTY_SUCCESSORS_PRUNED);
        lattice.setProperty(node,Node.PROPERTY_SUCCESSORS_PRUNED);
      }
    }
    @Override public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_ANONYMOUS);
    }
  }
;
  NodeAction binaryTriggerCheck=new NodeActionInverse(binaryTriggerSkip);
  NodeAction binaryTriggerEvaluate=new NodeActionConstant(false);
  int linearAnonymityProperty=Node.PROPERTY_ANONYMOUS;
  NodeAction linearTriggerSkip=new NodeAction(){
    @Override public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_VISITED) || node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_INSUFFICIENT_UTILITY);
    }
  }
;
  NodeAction linearTriggerEvaluate=new NodeActionConstant(false);
  NodeAction linearTriggerCheck=new NodeAction(){
    @Override public boolean appliesTo(    Node node){
      return !node.hasProperty(Node.PROPERTY_VISITED) && !node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) && !node.hasProperty(Node.PROPERTY_INSUFFICIENT_UTILITY)&& !node.hasProperty(Node.PROPERTY_CHECKED);
    }
  }
;
  NodeAction linearTriggerTag=new NodeAction(){
    @Override public void action(    Node node){
      lattice.setProperty(node,Node.PROPERTY_VISITED);
      if (node.hasProperty(Node.PROPERTY_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_INSUFFICIENT_UTILITY);
      }
    }
    @Override public boolean appliesTo(    Node node){
      return true;
    }
  }
;
  NodeAction triggerFireEvent=new NodeActionOR(linearTriggerSkip){
    @Override protected boolean additionalConditionAppliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_SUCCESSORS_PRUNED);
    }
  }
;
  FLASHConfiguration config=FLASHConfiguration.createTwoPhaseConfiguration(new FLASHPhaseConfiguration(binaryAnonymityProperty,binaryTriggerTag,binaryTriggerCheck,binaryTriggerEvaluate,binaryTriggerSkip),new FLASHPhaseConfiguration(linearAnonymityProperty,linearTriggerTag,linearTriggerCheck,linearTriggerEvaluate,linearTriggerSkip),History.STORAGE_TRIGGER_ALL,triggerFireEvent,true);
  return new FLASHAlgorithmImpl(lattice,checker,strategy,config);
}

Fixed version (ground truth):
/** 
 * Semantics of method name: monotonicity of criteria + monotonicity of metric
 * @param lattice
 * @param checker
 * @param strategy
 * @return
 */
private static AbstractAlgorithm createPartialFull(final Lattice lattice,final INodeChecker checker,final FLASHStrategy strategy){
  int binaryAnonymityProperty=Node.PROPERTY_K_ANONYMOUS;
  NodeAction binaryTriggerSkip=new NodeAction(){
    @Override public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_INSUFFICIENT_UTILITY);
    }
  }
;
  NodeAction binaryTriggerTag=new NodeAction(){
    @Override public void action(    Node node){
      if (node.hasProperty(Node.PROPERTY_K_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_K_ANONYMOUS);
      }
 else {
        lattice.setPropertyDownwards(node,false,Node.PROPERTY_NOT_K_ANONYMOUS);
      }
      if (node.hasProperty(Node.PROPERTY_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_INSUFFICIENT_UTILITY | Node.PROPERTY_SUCCESSORS_PRUNED);
        lattice.setProperty(node,Node.PROPERTY_SUCCESSORS_PRUNED);
      }
    }
    @Override public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_ANONYMOUS);
    }
  }
;
  NodeAction binaryTriggerCheck=new NodeActionInverse(binaryTriggerSkip);
  NodeAction binaryTriggerEvaluate=new NodeActionConstant(false);
  int linearAnonymityProperty=Node.PROPERTY_ANONYMOUS;
  NodeAction linearTriggerSkip=new NodeAction(){
    @Override public boolean appliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_VISITED) || node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) || node.hasProperty(Node.PROPERTY_INSUFFICIENT_UTILITY);
    }
  }
;
  NodeAction linearTriggerEvaluate=new NodeActionConstant(false);
  NodeAction linearTriggerCheck=new NodeAction(){
    @Override public boolean appliesTo(    Node node){
      return !node.hasProperty(Node.PROPERTY_VISITED) && !node.hasProperty(Node.PROPERTY_NOT_K_ANONYMOUS) && !node.hasProperty(Node.PROPERTY_INSUFFICIENT_UTILITY)&& !node.hasProperty(Node.PROPERTY_CHECKED);
    }
  }
;
  NodeAction linearTriggerTag=new NodeAction(){
    @Override public void action(    Node node){
      lattice.setProperty(node,Node.PROPERTY_VISITED);
      if (node.hasProperty(Node.PROPERTY_ANONYMOUS)) {
        lattice.setPropertyUpwards(node,false,Node.PROPERTY_INSUFFICIENT_UTILITY | Node.PROPERTY_SUCCESSORS_PRUNED);
        lattice.setProperty(node,Node.PROPERTY_SUCCESSORS_PRUNED);
      }
    }
    @Override public boolean appliesTo(    Node node){
      return true;
    }
  }
;
  NodeAction triggerFireEvent=new NodeActionOR(linearTriggerSkip){
    @Override protected boolean additionalConditionAppliesTo(    Node node){
      return node.hasProperty(Node.PROPERTY_SUCCESSORS_PRUNED);
    }
  }
;
  FLASHConfiguration config=FLASHConfiguration.createTwoPhaseConfiguration(new FLASHPhaseConfiguration(binaryAnonymityProperty,binaryTriggerTag,binaryTriggerCheck,binaryTriggerEvaluate,binaryTriggerSkip),new FLASHPhaseConfiguration(linearAnonymityProperty,linearTriggerTag,linearTriggerCheck,linearTriggerEvaluate,linearTriggerSkip),History.STORAGE_TRIGGER_ALL,triggerFireEvent,true);
  return new FLASHAlgorithmImpl(lattice,checker,strategy,config);
}