Program: 61416
Project: 61416
Buggy source:
@Deprecated private List<Expression> combineComplex(List<Expression> toCombine,int previousSize,Object value){
  Expression nullExpression=AccessFactory.literal(null,nopolContext);
  logger.debug("String_Node_Str" + toCombine.size() + "String_Node_Str");
  List<Expression> result=new ArrayList<>();
  if (value != null && value.getClass() != Boolean.class) {
    return result;
  }
  if (nopolContext.isSortExpressions()) {
    Collections.sort(toCombine,Collections.reverseOrder());
  }
  executionTime=System.currentTimeMillis() - startTime;
  for (int i=0; i < toCombine.size() && executionTime <= maxTime; i++) {
    Expression expression=toCombine.get(i);
    if (expression.getValue().getType() != null && (Number.class.isAssignableFrom(expression.getValue().getType()) || Boolean.class.isAssignableFrom(expression.getValue().getType()))) {
      continue;
    }
    if (expression.getValue().isPrimitive()) {
      continue;
    }
    BinaryExpression binaryExpression=new BinaryExpressionImpl(BinaryOperator.EQ,expression,nullExpression,nopolContext);
    if (addExpressionIn(binaryExpression,result,value != null)) {
      if (!expression.sameExpression(nullExpression)) {
        if (callListener(binaryExpression)) {
          return result;
        }
      }
    }
    binaryExpression=CombinationFactory.create(BinaryOperator.NEQ,expression,nullExpression,nopolContext);
    if (addExpressionIn(binaryExpression,result,value != null)) {
      if (!expression.sameExpression(nullExpression)) {
        if (callListener(binaryExpression)) {
          return result;
        }
      }
    }
    executionTime=System.currentTimeMillis() - startTime;
  }
  return result;
}

Fixed version (ground truth):
@Deprecated private List<Expression> combineComplex(List<Expression> toCombine,int previousSize,Object value){
  Expression nullExpression=AccessFactory.literal(null,nopolContext);
  logger.debug("String_Node_Str" + toCombine.size() + "String_Node_Str");
  List<Expression> result=new ArrayList<>();
  if (value != null && value.getClass() != Boolean.class) {
    return result;
  }
  if (nopolContext.isSortExpressions()) {
    Collections.sort(toCombine,Collections.reverseOrder());
  }
  executionTime=System.currentTimeMillis() - startTime;
  for (int i=0; i < toCombine.size() && executionTime <= maxTime; i++) {
    Expression expression=toCombine.get(i);
    if (expression.getValue().getType() != null && (Number.class.isAssignableFrom(expression.getValue().getType()) || Boolean.class.isAssignableFrom(expression.getValue().getType()))) {
      continue;
    }
    if (expression.getValue().isPrimitive()) {
      continue;
    }
    BinaryExpression binaryExpression=new BinaryExpressionImpl(BinaryOperator.EQ,expression,nullExpression,nopolContext);
    if (addExpressionIn(binaryExpression,result,value != null)) {
      if (!expression.sameExpression(nullExpression)) {
        if (callListener(binaryExpression)) {
          return result;
        }
      }
    }
    binaryExpression=create(BinaryOperator.NEQ,expression,nullExpression,nopolContext);
    if (addExpressionIn(binaryExpression,result,value != null)) {
      if (!expression.sameExpression(nullExpression)) {
        if (callListener(binaryExpression)) {
          return result;
        }
      }
    }
    executionTime=System.currentTimeMillis() - startTime;
  }
  return result;
}