Program: 79943
Project: 79943
Buggy source:
public AutomatedCraftingChamber(Category category,ItemStack item,String name,RecipeType recipeType,ItemStack[] recipe){
  super(category,item,name,recipeType,recipe);
  new BlockMenuPreset(name,"String_Node_Str"){
    @Override public void init(){
      constructMenu(this);
    }
    @Override public void newInstance(    final BlockMenu menu,    final Block b){
      if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b,"String_Node_Str") == null || BlockStorage.getBlockInfo(b,"String_Node_Str").equals("String_Node_Str")) {
        menu.replaceExistingItem(6,new CustomItem(new MaterialData(Material.SULPHUR),"String_Node_Str","String_Node_Str","String_Node_Str"));
        menu.addMenuClickHandler(6,new MenuClickHandler(){
          @Override public boolean onClick(          Player p,          int arg1,          ItemStack arg2,          ClickAction arg3){
            BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
            newInstance(menu,b);
            return false;
          }
        }
);
      }
 else {
        menu.replaceExistingItem(6,new CustomItem(new MaterialData(Material.REDSTONE),"String_Node_Str","String_Node_Str","String_Node_Str"));
        menu.addMenuClickHandler(6,new MenuClickHandler(){
          @Override public boolean onClick(          Player p,          int arg1,          ItemStack arg2,          ClickAction arg3){
            BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
            newInstance(menu,b);
            return false;
          }
        }
);
      }
    }
    @Override public boolean canOpen(    Block b,    Player p){
      return p.hasPermission("String_Node_Str") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(),b,true);
    }
    @Override public int[] getSlotsAccessedByItemTransport(    ItemTransportFlow flow){
      return new int[0];
    }
    @Override public int[] getSlotsAccessedByItemTransport(    BlockMenu menu,    ItemTransportFlow flow,    ItemStack item){
      if (flow.equals(ItemTransportFlow.WITHDRAW))       return getOutputSlots();
      List<Integer> slots=new ArrayList<Integer>();
      for (      int slot : getInputSlots()) {
        if (menu.getItemInSlot(slot) != null)         slots.add(slot);
      }
      Collections.sort(slots,new RecipeSorter(menu));
      return ArrayUtils.toPrimitive(slots.toArray(new Integer[slots.size()]));
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      BlockMenu inv=BlockStorage.getInventory(b);
      if (inv != null) {
        for (        int slot : getInputSlots()) {
          if (inv.getItemInSlot(slot) != null)           b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
        }
        for (        int slot : getOutputSlots()) {
          if (inv.getItemInSlot(slot) != null)           b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
        }
      }
      return true;
    }
  }
);
}

Fixed version (ground truth):
public AutomatedCraftingChamber(Category category,ItemStack item,String name,RecipeType recipeType,ItemStack[] recipe){
  super(category,item,name,recipeType,recipe);
  new BlockMenuPreset(name,"String_Node_Str"){
    @Override public void init(){
      constructMenu(this);
    }
    @Override public void newInstance(    final BlockMenu menu,    final Block b){
      if (!BlockStorage.hasBlockInfo(b) || BlockStorage.getBlockInfo(b,"String_Node_Str") == null || BlockStorage.getBlockInfo(b,"String_Node_Str").equals("String_Node_Str")) {
        menu.replaceExistingItem(6,new CustomItem(new MaterialData(Material.SULPHUR),"String_Node_Str","String_Node_Str","String_Node_Str"));
        menu.addMenuClickHandler(6,new MenuClickHandler(){
          @Override public boolean onClick(          Player p,          int arg1,          ItemStack arg2,          ClickAction arg3){
            BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
            newInstance(menu,b);
            return false;
          }
        }
);
      }
 else {
        menu.replaceExistingItem(6,new CustomItem(new MaterialData(Material.REDSTONE),"String_Node_Str","String_Node_Str","String_Node_Str"));
        menu.addMenuClickHandler(6,new MenuClickHandler(){
          @Override public boolean onClick(          Player p,          int arg1,          ItemStack arg2,          ClickAction arg3){
            BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
            newInstance(menu,b);
            return false;
          }
        }
);
      }
    }
    @Override public boolean canOpen(    Block b,    Player p){
      return p.hasPermission("String_Node_Str") || CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(),b,true);
    }
    @Override public int[] getSlotsAccessedByItemTransport(    ItemTransportFlow flow){
      return new int[0];
    }
    @Override public int[] getSlotsAccessedByItemTransport(    BlockMenu menu,    ItemTransportFlow flow,    ItemStack item){
      if (flow.equals(ItemTransportFlow.WITHDRAW))       return getOutputSlots();
      List<Integer> slots=new ArrayList<Integer>();
      for (      int slot : getInputSlots()) {
        if (menu.getItemInSlot(slot) != null)         slots.add(slot);
      }
      Collections.sort(slots,new RecipeSorter(menu));
      return ArrayUtils.toPrimitive(slots.toArray(new Integer[slots.size()]));
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
      BlockStorage.addBlockInfo(b,"String_Node_Str","String_Node_Str");
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      BlockMenu inv=BlockStorage.getInventory(b);
      if (inv != null) {
        for (        int slot : getInputSlots()) {
          if (inv.getItemInSlot(slot) != null) {
            b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
            inv.replaceExistingItem(slot,null);
          }
        }
        for (        int slot : getOutputSlots()) {
          if (inv.getItemInSlot(slot) != null) {
            b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
            inv.replaceExistingItem(slot,null);
          }
        }
      }
      return true;
    }
  }
);
}