Program: 8321
Project: 8321
Buggy source:
@Override public Iterable<IngredientMap<NormalizedSimpleStack>> getIngredientsFor(IRecipe recipe){
  List<IngredientMap<NormalizedSimpleStack>> inputs=new LinkedList<IngredientMap<NormalizedSimpleStack>>();
  Iterable<Object> recipeItems=null;
  if (recipe instanceof ShapedOreRecipe) {
    recipeItems=Arrays.asList(((ShapedOreRecipe)recipe).getInput());
  }
 else   if (recipe instanceof ShapelessRecipes) {
    recipeItems=((ShapelessOreRecipe)recipe).getInput();
  }
  ArrayList<Iterable<NormalizedSimpleStack>> variableInputs=new ArrayList<Iterable<NormalizedSimpleStack>>();
  ArrayList<NormalizedSimpleStack> fixedInputs=new ArrayList<NormalizedSimpleStack>();
  for (  Object recipeItem : recipeItems) {
    if (recipeItem instanceof ItemStack) {
      fixedInputs.add(new NormalizedSimpleStack((ItemStack)recipeItem));
    }
 else     if (recipeItem instanceof Iterable) {
      List<NormalizedSimpleStack> recipeItemOptions=new LinkedList<NormalizedSimpleStack>();
      for (      Object option : (Iterable)recipeItem) {
        if (option instanceof ItemStack) {
          recipeItemOptions.add(new NormalizedSimpleStack((ItemStack)option));
        }
 else {
          PELogger.logWarn("String_Node_Str" + recipe + "String_Node_Str"+ option.toString()+ "String_Node_Str");
          return null;
        }
      }
      variableInputs.add(recipeItemOptions);
    }
    for (    Iterable<NormalizedSimpleStack> recipeIngredients : recursiveRecipeInput(fixedInputs,variableInputs)) {
      IngredientMap<NormalizedSimpleStack> ingredientMap=new IngredientMap<NormalizedSimpleStack>();
      for (      NormalizedSimpleStack i : recipeIngredients) {
        ingredientMap.addIngredient(i,1);
      }
      inputs.add(ingredientMap);
    }
  }
  return inputs;
}

Fixed version (ground truth):
@Override public Iterable<IngredientMap<NormalizedSimpleStack>> getIngredientsFor(IRecipe recipe){
  List<IngredientMap<NormalizedSimpleStack>> inputs=new LinkedList<IngredientMap<NormalizedSimpleStack>>();
  Iterable<Object> recipeItems=null;
  if (recipe instanceof ShapedOreRecipe) {
    recipeItems=Arrays.asList(((ShapedOreRecipe)recipe).getInput());
  }
 else   if (recipe instanceof ShapelessRecipes) {
    recipeItems=((ShapelessOreRecipe)recipe).getInput();
  }
  if (recipeItems == null)   return null;
  ArrayList<Iterable<NormalizedSimpleStack>> variableInputs=new ArrayList<Iterable<NormalizedSimpleStack>>();
  ArrayList<NormalizedSimpleStack> fixedInputs=new ArrayList<NormalizedSimpleStack>();
  for (  Object recipeItem : recipeItems) {
    if (recipeItem instanceof ItemStack) {
      fixedInputs.add(new NormalizedSimpleStack((ItemStack)recipeItem));
    }
 else     if (recipeItem instanceof Iterable) {
      List<NormalizedSimpleStack> recipeItemOptions=new LinkedList<NormalizedSimpleStack>();
      for (      Object option : (Iterable)recipeItem) {
        if (option instanceof ItemStack) {
          recipeItemOptions.add(new NormalizedSimpleStack((ItemStack)option));
        }
 else {
          PELogger.logWarn("String_Node_Str" + recipe + "String_Node_Str"+ option.toString()+ "String_Node_Str");
          return null;
        }
      }
      variableInputs.add(recipeItemOptions);
    }
  }
  for (  Iterable<NormalizedSimpleStack> recipeIngredients : recursiveRecipeInput(fixedInputs,variableInputs)) {
    IngredientMap<NormalizedSimpleStack> ingredientMap=new IngredientMap<NormalizedSimpleStack>();
    for (    NormalizedSimpleStack i : recipeIngredients) {
      ingredientMap.addIngredient(i,1);
    }
    inputs.add(ingredientMap);
  }
  return inputs;
}