nus-yam/ex-repair huggingface dataset:
Program: 79905
Project: 79905
Buggy source:
/** 
 * Test missing items can be removed. 
 */
@Test public void testRemoveItemExpired(){
  cache.putList(BUCKET_A,"String_Node_Str",Lists.newArrayList(ITEM_A_A,ITEM_A_AA,ITEM_A_ABA));
  cache.putList(BUCKET_A,PREFIX_AA,Lists.newArrayList(ITEM_A_AA));
  ticker.setTimeMillis(11);
  GoogleCloudStorageItemInfo actualItem=cache.removeItem(ITEM_A_A.getResourceId());
  assertEquals(actualItem,null);
  assertContainsInAnyOrder(cache.getAllItemsRaw(),Lists.newArrayList());
  assertFalse(cache.containsListRaw(BUCKET_A,"String_Node_Str"));
  assertTrue(cache.containsListRaw(BUCKET_A,PREFIX_AA));
}

Fixed version (ground truth):
/** 
 * Test missing items can be removed. 
 */
@Test public void testRemoveItemExpired(){
  cache.putList(BUCKET_A,"String_Node_Str",Lists.newArrayList(ITEM_A_A,ITEM_A_AA,ITEM_A_ABA));
  cache.putList(BUCKET_A,PREFIX_AA,Lists.newArrayList(ITEM_A_AA));
  ticker.setTimeMillis(11);
  GoogleCloudStorageItemInfo actualItem=cache.removeItem(ITEM_A_A.getResourceId());
  assertEquals(actualItem,null);
  assertContainsInAnyOrder(cache.getAllItemsRaw(),Lists.<GoogleCloudStorageItemInfo>newArrayList());
  assertFalse(cache.containsListRaw(BUCKET_A,"String_Node_Str"));
  assertTrue(cache.containsListRaw(BUCKET_A,PREFIX_AA));
}
Program: 79906
Project: 79906
Buggy source:
/** 
 * Test missing lists cannot be retrieved. 
 */
@Test public void testGetListMissing(){
  List<GoogleCloudStorageItemInfo> actualItems=cache.getList(BUCKET_A,PREFIX_A);
  assertNull(actualItems);
  assertContainsInAnyOrder(cache.getAllItemsRaw(),Lists.newArrayList());
}

Fixed version (ground truth):
/** 
 * Test missing lists cannot be retrieved. 
 */
@Test public void testGetListMissing(){
  List<GoogleCloudStorageItemInfo> actualItems=cache.getList(BUCKET_A,PREFIX_A);
  assertNull(actualItems);
  assertContainsInAnyOrder(cache.getAllItemsRaw(),Lists.<GoogleCloudStorageItemInfo>newArrayList());
}
Program: 79907
Project: 79907
Buggy source:
/** 
 * Test all items are cleared by invalidate all. 
 */
@Test public void testInvalidateAll(){
  cache.putList(BUCKET_A,"String_Node_Str",Lists.newArrayList(ITEM_A_A,ITEM_A_AA,ITEM_A_ABA));
  cache.putList(BUCKET_A,PREFIX_AA,Lists.newArrayList(ITEM_A_AA));
  cache.invalidateAll();
  assertContainsInAnyOrder(cache.getAllItemsRaw(),Lists.newArrayList());
  assertFalse(cache.containsListRaw(BUCKET_A,"String_Node_Str"));
  assertFalse(cache.containsListRaw(BUCKET_A,PREFIX_AA));
}

Fixed version (ground truth):
/** 
 * Test all items are cleared by invalidate all. 
 */
@Test public void testInvalidateAll(){
  cache.putList(BUCKET_A,"String_Node_Str",Lists.newArrayList(ITEM_A_A,ITEM_A_AA,ITEM_A_ABA));
  cache.putList(BUCKET_A,PREFIX_AA,Lists.newArrayList(ITEM_A_AA));
  cache.invalidateAll();
  assertContainsInAnyOrder(cache.getAllItemsRaw(),Lists.<GoogleCloudStorageItemInfo>newArrayList());
  assertFalse(cache.containsListRaw(BUCKET_A,"String_Node_Str"));
  assertFalse(cache.containsListRaw(BUCKET_A,PREFIX_AA));
}
Program: 79908
Project: 79908
Buggy source:
/** 
 * Determines if the exception is an internal server error.
 */
public boolean isInternalServerError(Throwable throwable){
  if (throwable instanceof GoogleJsonResponseException) {
    return (getHttpStatusCode((GoogleJsonResponseException)throwable)) / 100 == 5;
  }
  return throwable.getCause() != null && isInternalServerError(throwable);
}

Fixed version (ground truth):
/** 
 * Determines if the exception is an internal server error.
 */
public boolean isInternalServerError(Throwable throwable){
  if (throwable instanceof GoogleJsonResponseException) {
    return (getHttpStatusCode((GoogleJsonResponseException)throwable)) / 100 == 5;
  }
  return throwable.getCause() != null && isInternalServerError(throwable.getCause());
}
Program: 79909
Project: 79909
Buggy source:
/** 
 * Determines if the exception is a client error.
 */
public boolean isClientError(Throwable throwable){
  if (throwable instanceof GoogleJsonResponseException) {
    return (getHttpStatusCode((GoogleJsonResponseException)throwable)) / 100 == 4;
  }
  return throwable.getCause() != null && isClientError(throwable);
}

Fixed version (ground truth):
/** 
 * Determines if the exception is a client error.
 */
public boolean isClientError(Throwable throwable){
  if (throwable instanceof GoogleJsonResponseException) {
    return (getHttpStatusCode((GoogleJsonResponseException)throwable)) / 100 == 4;
  }
  return throwable.getCause() != null && isClientError(throwable.getCause());
}
Program: 79910
Project: 79910
Buggy source:
/** 
 * Extracts the error message.
 */
public String getErrorMessage(IOException e){
  if (e instanceof GoogleJsonResponseException) {
    return ((GoogleJsonResponseException)e).getDetails().getMessage();
  }
  return e.getMessage();
}

Fixed version (ground truth):
/** 
 * Extracts the error message.
 */
public String getErrorMessage(IOException e){
  if (e instanceof GoogleJsonResponseException) {
    GoogleJsonResponseException gjre=((GoogleJsonResponseException)e);
    if (gjre.getDetails() != null) {
      return gjre.getDetails().getMessage();
    }
  }
  return e.getMessage();
}
Program: 79911
Project: 79911
Buggy source:
private WritableByteChannel createByteChannel(Configuration configuration,Progressable progressable,Bigquery bigquery,Job outputJob,String projectId,int writeBufferSize) throws IOException {
  if (configuration.getBoolean(BigQueryConfiguration.ENABLE_ASYNC_WRITE,BigQueryConfiguration.ENABLE_ASYNC_WRITE_DEFAULT)) {
    log.debug("String_Node_Str");
    AsyncWriteChannelOptions options=AsyncWriteChannelOptions.newBuilder().setUploadBufferSize(writeBufferSize).build();
    BigQueryAsyncWriteChannel channel=new BigQueryAsyncWriteChannel(configuration,progressable,threadPool,bigquery,outputJob,projectId,options);
    channel.initialize();
    return channel;
  }
 else {
    log.debug("String_Node_Str");
    return new BigQueryBatchedWriteChannel(configuration,progressable,bigquery,writeBufferSize,outputJob,projectId);
  }
}

Fixed version (ground truth):
private BigQueryAsyncWriteChannel createByteChannel(Configuration configuration,Progressable progressable,Bigquery bigquery,Job outputJob,String projectId,int writeBufferSize) throws IOException {
  if (configuration.getBoolean(BigQueryConfiguration.ENABLE_ASYNC_WRITE,BigQueryConfiguration.ENABLE_ASYNC_WRITE_DEFAULT)) {
    log.debug("String_Node_Str");
  }
 else {
    log.warn("String_Node_Str",BigQueryConfiguration.ENABLE_ASYNC_WRITE);
  }
  AsyncWriteChannelOptions options=AsyncWriteChannelOptions.newBuilder().setUploadBufferSize(writeBufferSize).build();
  BigQueryAsyncWriteChannel channel=new BigQueryAsyncWriteChannel(configuration,progressable,threadPool,bigquery,outputJob,projectId,options);
  channel.setClientRequestHelper(clientRequestHelper);
  channel.initialize();
  return channel;
}
Program: 79912
Project: 79912
Buggy source:
/** 
 * Constructs an instance of BigQueryRecordWriter that writes to the table with ID tableId in the dataset denoted by datasetId under the project denoted by projectId. Records are formatted according to the schema described by fields. Writes are flushed to the given table in batches of size numRecordsInBatch.
 * @param configuration Configuration for the job / task
 * @param progressable Progressable to which we should report status
 * @param outputRecordSchema the schema describing the output records.
 * @param projectId the id of the project.
 * @param tableRef the fully qualified reference to the (temp) table to write to; its projectIdmust be specified, and may or may not match the projectId which owns the BigQuery job.
 * @param writeBufferSize The size of the upload buffer to use.
 * @throws IOException on IOError.
 */
public BigQueryRecordWriter(Configuration configuration,Progressable progressable,List<TableFieldSchema> outputRecordSchema,String projectId,TableReference tableRef,int writeBufferSize) throws IOException {
  this(new BigQueryFactory(),configuration,progressable,outputRecordSchema,projectId,tableRef,writeBufferSize);
}

Fixed version (ground truth):
/** 
 * Constructs an instance of BigQueryRecordWriter that writes to the table with ID tableId in the dataset denoted by datasetId under the project denoted by projectId. Records are formatted according to the schema described by fields. Writes are flushed to the given table in batches of size numRecordsInBatch.
 * @param configuration Configuration for the job / task
 * @param progressable Progressable to which we should report status
 * @param outputRecordSchema the schema describing the output records.
 * @param projectId the id of the project.
 * @param tableRef the fully qualified reference to the (temp) table to write to; its projectIdmust be specified, and may or may not match the projectId which owns the BigQuery job.
 * @param writeBufferSize The size of the upload buffer to use.
 * @throws IOException on IOError.
 */
public BigQueryRecordWriter(Configuration configuration,Progressable progressable,List<TableFieldSchema> outputRecordSchema,String projectId,TableReference tableRef,int writeBufferSize) throws IOException {
  this(new BigQueryFactory(),Executors.newCachedThreadPool(),new ClientRequestHelper<>(),configuration,progressable,outputRecordSchema,projectId,tableRef,writeBufferSize);
}
Program: 79913
Project: 79913
Buggy source:
/** 
 * Writes a key/value pair.
 * @param key the key to write.
 * @param value the value to write.
 * @throws IOException on IOError.
 */
@Override public void write(K key,V value) throws IOException {
  long startTime=System.nanoTime();
  String stringValue=gson.toJson(value) + "String_Node_Str";
  byteChannel.write(ByteBuffer.wrap(stringValue.getBytes(StandardCharsets.UTF_8)));
  long duration=System.nanoTime() - startTime;
  increment(Counter.WRITE_CALLS);
  increment(Counter.WRITE_TOTAL_TIME,duration);
}

Fixed version (ground truth):
/** 
 * Writes a key/value pair.
 * @param key the key to write.
 * @param value the value to write.
 * @throws IOException on IOError.
 */
@Override public void write(K key,V value) throws IOException {
  long startTime=System.nanoTime();
  String stringValue=gson.toJson(value) + "String_Node_Str";
  byte[] valueBytes=stringValue.getBytes(StandardCharsets.UTF_8);
  bytesWritten+=valueBytes.length;
  byteChannel.write(ByteBuffer.wrap(valueBytes));
  long duration=System.nanoTime() - startTime;
  increment(Counter.BYTES_WRITTEN,valueBytes.length);
  increment(Counter.WRITE_CALLS);
  increment(Counter.WRITE_TOTAL_TIME,duration);
}
Program: 79914
Project: 79914
Buggy source:
public void setParameters(){
  if (apu != null) {
    apu.setParameters();
  }
  if (ppu != null) {
    ppu.setParameters();
  }
  if (limiter != null && mapper != null) {
switch (mapper.getTVType()) {
case NTSC:
default :
      limiter.setInterval(16639267);
    break;
case PAL:
case DENDY:
  limiter.setInterval(19997200);
}
}
}

Fixed version (ground truth):
public synchronized void setParameters(){
  if (apu != null) {
    apu.setParameters();
  }
  if (ppu != null) {
    ppu.setParameters();
  }
  if (limiter != null && mapper != null) {
switch (mapper.getTVType()) {
case NTSC:
default :
      limiter.setInterval(16639267);
    break;
case PAL:
case DENDY:
  limiter.setInterval(19997200);
}
}
}
Program: 79915
Project: 79915
Buggy source:
private void axs(final int addr){
  X=(A & X) - ram.read(addr);
  setflags(X);
  carryFlag=(X >= 0);
}

Fixed version (ground truth):
private void axs(final int addr){
  X=((A & X) - ram.read(addr)) & 0xff;
  setflags(X);
  carryFlag=(X >= 0);
}
Program: 79916
Project: 79916
Buggy source:
public final synchronized void setParameters(){
switch (cpuram.mapper.getTVType()) {
case NTSC:
default :
    this.dmcperiods=new int[]{428,380,340,320,286,254,226,214,190,160,142,128,106,84,72,54};
  this.noiseperiod=new int[]{4,8,16,32,64,96,128,160,202,254,380,508,762,1016,2034,4068};
this.framectrreload=7456;
cyclespersample=1789773.0 / samplerate;
cyclesperframe=29781;
break;
case DENDY:
this.dmcperiods=new int[]{428,380,340,320,286,254,226,214,190,160,142,128,106,84,72,54};
this.noiseperiod=new int[]{4,8,16,32,64,96,128,160,202,254,380,508,762,1016,2034,4068};
this.framectrreload=7456;
cyclespersample=1773448.0 / samplerate;
cyclesperframe=35469;
break;
case PAL:
cyclespersample=1662607.0 / samplerate;
this.dmcperiods=new int[]{398,354,316,298,276,236,210,198,176,148,132,118,98,78,66,50};
this.noiseperiod=new int[]{4,8,14,30,60,88,118,148,188,236,354,472,708,944,1890,3778};
this.framectrreload=8312;
cyclesperframe=33252;
break;
}
soundFiltering=PrefsSingleton.get().getBoolean("String_Node_Str",true);
samplerate=PrefsSingleton.get().getInt("String_Node_Str",44100);
if (ai != null) {
ai.destroy();
}
ai=new SwingAudioImpl(nes,samplerate);
if (PrefsSingleton.get().getBoolean("String_Node_Str",false)) {
ai=new Oscilloscope(ai);
}
}

Fixed version (ground truth):
public final synchronized void setParameters(){
  soundFiltering=PrefsSingleton.get().getBoolean("String_Node_Str",true);
  samplerate=PrefsSingleton.get().getInt("String_Node_Str",44100);
  if (ai != null) {
    ai.destroy();
  }
  ai=new SwingAudioImpl(nes,samplerate);
  if (PrefsSingleton.get().getBoolean("String_Node_Str",false)) {
    ai=new Oscilloscope(ai);
  }
switch (cpuram.mapper.getTVType()) {
case NTSC:
default :
    this.dmcperiods=new int[]{428,380,340,320,286,254,226,214,190,160,142,128,106,84,72,54};
  this.noiseperiod=new int[]{4,8,16,32,64,96,128,160,202,254,380,508,762,1016,2034,4068};
this.framectrreload=7456;
cyclespersample=1789773.0 / samplerate;
cyclesperframe=29781;
break;
case DENDY:
this.dmcperiods=new int[]{428,380,340,320,286,254,226,214,190,160,142,128,106,84,72,54};
this.noiseperiod=new int[]{4,8,16,32,64,96,128,160,202,254,380,508,762,1016,2034,4068};
this.framectrreload=7456;
cyclespersample=1773448.0 / samplerate;
cyclesperframe=35469;
break;
case PAL:
cyclespersample=1662607.0 / samplerate;
this.dmcperiods=new int[]{398,354,316,298,276,236,210,198,176,148,132,118,98,78,66,50};
this.noiseperiod=new int[]{4,8,14,30,60,88,118,148,188,236,354,472,708,944,1890,3778};
this.framectrreload=8312;
cyclesperframe=33252;
break;
}
}
Program: 79917
Project: 79917
Buggy source:
public final int getval(){
  final int mixvol=384 * (((enable[0] ? volume[0] : 0) * timers[0].getval() + (enable[1] ? volume[1] : 0) * timers[1].getval()) + (enable[2] ? ((volume[2] & 0xff) >> 3) : 0));
  return mixvol;
}

Fixed version (ground truth):
public final int getval(){
  final int mixvol=320 * (((enable[0] ? volume[0] : 0) * timers[0].getval() + (enable[1] ? volume[1] : 0) * timers[1].getval()) + (enable[2] ? ((volume[2] & 0xff) >> 3) : 0));
  return mixvol;
}
Program: 79918
Project: 79918
Buggy source:
private void runUnits(){
  if ((pitch + modout) > 0 && !haltWaveAndReset) {
    waveAccum+=(pitch + modout);
    if ((waveAccum & 0xffff) != waveAccum) {
      waveAccum&=0xffff;
      waveAddr=++waveAddr & 63;
    }
  }
  if (modFreq > 0 && !modDisable) {
    modAccum+=modFreq;
    if ((modAccum & 0xffff) != modAccum) {
      modAccum&=0xffff;
      modTableAddr=++modTableAddr & 63;
      CalculateModulator();
    }
  }
 else   if (modDisable) {
    modAccum=0;
    modout=0;
  }
  if (!haltWaveAndReset && !BothEnvDisable && (envClockMultiplier != 0)) {
    CalculateEnvelopes();
  }
  if (!waveWriteEnable) {
    waveOut=wavetable[waveAddr];
  }
  int tmp=(volGain > 32) ? 32 : volGain;
  int out=(waveOut * tmp);
switch (masterVol) {
case 0:
default :
    out*=8;
  break;
case 1:
out*=5;
break;
case 2:
out*=4;
break;
case 3:
out*=3;
break;
}
out+=lpaccum;
lpaccum-=out >> 6;
}

Fixed version (ground truth):
private void runUnits(){
  if ((pitch + modout) > 0 && !haltWaveAndReset) {
    waveAccum+=(pitch + modout);
    if ((waveAccum & 0xffff) != waveAccum) {
      waveAccum&=0xffff;
      waveAddr=++waveAddr & 63;
    }
  }
  if (modFreq > 0 && !modDisable) {
    modAccum+=modFreq;
    if ((modAccum & 0xffff) != modAccum) {
      modAccum&=0xffff;
      CalculateModulator();
    }
  }
 else   if (modDisable) {
    modAccum=0;
    modout=0;
  }
  if (!haltWaveAndReset && !BothEnvDisable && (envClockMultiplier != 0)) {
    CalculateEnvelopes();
  }
  if (!waveWriteEnable) {
    waveOut=wavetable[waveAddr];
  }
  int tmp=(volGain > 32) ? 32 : volGain;
  int out=(waveOut * tmp);
switch (masterVol) {
case 0:
default :
    out*=8;
  break;
case 1:
out*=5;
break;
case 2:
out*=4;
break;
case 3:
out*=3;
break;
}
out+=lpaccum;
lpaccum-=out >> 6;
}
Program: 79919
Project: 79919
Buggy source:
private void CalculateModulator(){
switch (modTable[modTableAddr]) {
case 0:
default :
    modCtr+=0;
  break;
case 1:
modCtr+=1;
break;
case 2:
modCtr+=2;
break;
case 3:
modCtr+=4;
break;
case 4:
modCtr=0;
break;
case 5:
modCtr-=4;
break;
case 6:
modCtr-=2;
break;
case 7:
modCtr-=1;
break;
}
modCtr=(modCtr << 25) >> 25;
int temp=modCtr * modGain;
int remainder=temp & 0xF;
temp>>=4;
if ((remainder > 0) && ((temp & 0x80) == 0)) {
if (modCtr < 0) {
temp-=1;
}
 else {
temp+=2;
}
}
if (temp >= 192) {
temp-=256;
}
 else if (temp < -64) {
temp+=256;
}
temp=pitch * temp;
remainder=temp & 0x3F;
temp>>=6;
if (remainder >= 32) {
temp+=1;
}
modout=temp;
}

Fixed version (ground truth):
private void CalculateModulator(){
switch (modTable[modTableAddr]) {
case 0:
default :
    modCtr+=0;
  break;
case 1:
modCtr+=1;
break;
case 2:
modCtr+=2;
break;
case 3:
modCtr+=4;
break;
case 4:
modCtr=0;
break;
case 5:
modCtr-=4;
break;
case 6:
modCtr-=2;
break;
case 7:
modCtr-=1;
break;
}
modTableAddr=++modTableAddr & 63;
modCtr=(modCtr << 25) >> 25;
int temp=modCtr * modGain;
int remainder=temp & 0xF;
temp>>=4;
if ((remainder > 0) && ((temp & 0x80) == 0)) {
if (modCtr < 0) {
temp-=1;
}
 else {
temp+=2;
}
}
if (temp >= 192) {
temp-=256;
}
 else if (temp < -64) {
temp+=256;
}
temp=pitch * temp;
remainder=temp & 0x3F;
temp>>=6;
if (remainder >= 32) {
temp+=1;
}
modout=temp;
}
Program: 79926
Project: 79926
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  boolean allow=reason.equals(UnregisterReason.PLAYER_BREAK) && (BlockStorage.getBlockInfo(b,"String_Node_Str").equals(p.getUniqueId().toString()) || p.hasPermission("String_Node_Str"));
  if (allow) {
    if (BlockStorage.getInventory(b).getItemInSlot(43) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(43));
    for (    int slot : getOutputSlots()) {
      if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)       b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
    }
    AndroidStatusHologram.remove(b);
  }
  return allow;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  boolean allow=reason.equals(UnregisterReason.PLAYER_BREAK) && (BlockStorage.getBlockInfo(b,"String_Node_Str").equals(p.getUniqueId().toString()) || p.hasPermission("String_Node_Str"));
  if (allow) {
    if (BlockStorage.getInventory(b).getItemInSlot(43) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(43));
      BlockStorage.getInventory(b).replaceExistingItem(43,null);
    }
    for (    int slot : getOutputSlots()) {
      if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
        b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
        BlockStorage.getInventory(b).replaceExistingItem(slot,null);
      }
    }
    AndroidStatusHologram.remove(b);
  }
  return allow;
}
Program: 79928
Project: 79928
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  for (  int slot : getOutputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  processing.remove(b);
  progress.remove(b);
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  for (  int slot : getOutputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  processing.remove(b);
  progress.remove(b);
  return true;
}
Program: 79930
Project: 79930
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getOutputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getOutputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}
Program: 79931
Project: 79931
Buggy source:
public AFarm(Category category,ItemStack item,String id,RecipeType recipeType,ItemStack[] recipe,ItemStack recipeOutput){
  super(category,item,id,recipeType,recipe,recipeOutput);
  new BlockMenuPreset(id,getInventoryTitle()){
    @Override public void init(){
      constructMenu(this);
    }
    @Override public void newInstance(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.WITHDRAW))       return getOutputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(id,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      for (      int slot : getOutputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)         b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      }
      return true;
    }
  }
);
}

Fixed version (ground truth):
public AFarm(Category category,ItemStack item,String id,RecipeType recipeType,ItemStack[] recipe,ItemStack recipeOutput){
  super(category,item,id,recipeType,recipe,recipeOutput);
  new BlockMenuPreset(id,getInventoryTitle()){
    @Override public void init(){
      constructMenu(this);
    }
    @Override public void newInstance(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.WITHDRAW))       return getOutputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(id,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      for (      int slot : getOutputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
          b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
          BlockStorage.getInventory(b).replaceExistingItem(slot,null);
        }
      }
      return true;
    }
  }
);
}
Program: 79933
Project: 79933
Buggy source:
@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));
    }
  }
  progress.remove(b.getLocation());
  processing.remove(b.getLocation());
  return true;
}

Fixed version (ground truth):
@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);
      }
    }
  }
  progress.remove(b.getLocation());
  processing.remove(b.getLocation());
  return true;
}
Program: 79934
Project: 79934
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  BlockMenu inv=BlockStorage.getInventory(b);
  if (inv != null) {
    for (    int slot : getFuelSlots()) {
      if (inv.getItemInSlot(slot) != null)       b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
    }
    for (    int slot : getCoolantSlots()) {
      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));
    }
  }
  progress.remove(b.getLocation());
  processing.remove(b.getLocation());
  ReactorHologram.remove(b.getLocation());
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  BlockMenu inv=BlockStorage.getInventory(b);
  if (inv != null) {
    for (    int slot : getFuelSlots()) {
      if (inv.getItemInSlot(slot) != null) {
        b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
        inv.replaceExistingItem(slot,null);
      }
    }
    for (    int slot : getCoolantSlots()) {
      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);
      }
    }
  }
  progress.remove(b.getLocation());
  processing.remove(b.getLocation());
  ReactorHologram.remove(b.getLocation());
  return true;
}
Program: 79936
Project: 79936
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}
Program: 79938
Project: 79938
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  me.mrCookieSlime.Slimefun.holograms.AnimalGrowthAccelerator.getArmorStand(b).remove();
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  me.mrCookieSlime.Slimefun.holograms.AnimalGrowthAccelerator.getArmorStand(b).remove();
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}
Program: 79939
Project: 79939
Buggy source:
public AnimalGrowthAccelerator(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(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.INSERT))       return getInputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      me.mrCookieSlime.Slimefun.holograms.AnimalGrowthAccelerator.getArmorStand(b).remove();
      for (      int slot : getInputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)         b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      }
      return true;
    }
  }
);
}

Fixed version (ground truth):
public AnimalGrowthAccelerator(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(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.INSERT))       return getInputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      me.mrCookieSlime.Slimefun.holograms.AnimalGrowthAccelerator.getArmorStand(b).remove();
      for (      int slot : getInputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
          b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
          BlockStorage.getInventory(b).replaceExistingItem(slot,null);
        }
      }
      return true;
    }
  }
);
}
Program: 79940
Project: 79940
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  me.mrCookieSlime.Slimefun.holograms.AutoBreeder.getArmorStand(b).remove();
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  me.mrCookieSlime.Slimefun.holograms.AutoBreeder.getArmorStand(b).remove();
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}
Program: 79941
Project: 79941
Buggy source:
public AutoBreeder(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(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.INSERT))       return getInputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      me.mrCookieSlime.Slimefun.holograms.AutoBreeder.getArmorStand(b).remove();
      for (      int slot : getInputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)         b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      }
      return true;
    }
  }
);
}

Fixed version (ground truth):
public AutoBreeder(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(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.INSERT))       return getInputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      me.mrCookieSlime.Slimefun.holograms.AutoBreeder.getArmorStand(b).remove();
      for (      int slot : getInputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
          b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
          BlockStorage.getInventory(b).replaceExistingItem(slot,null);
        }
      }
      return true;
    }
  }
);
}
Program: 79942
Project: 79942
Buggy source:
@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):
@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;
}
Program: 79944
Project: 79944
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}
Program: 79946
Project: 79946
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}
Program: 79948
Project: 79948
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  for (  int slot : getInputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}
Program: 79949
Project: 79949
Buggy source:
public CropGrowthAccelerator(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(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.INSERT))       return getInputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      for (      int slot : getInputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)         b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      }
      return true;
    }
  }
);
}

Fixed version (ground truth):
public CropGrowthAccelerator(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(    BlockMenu menu,    Block b){
    }
    @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){
      if (flow.equals(ItemTransportFlow.INSERT))       return getInputSlots();
      return new int[0];
    }
  }
;
  registerBlockHandler(name,new SlimefunBlockHandler(){
    @Override public void onPlace(    Player p,    Block b,    SlimefunItem item){
    }
    @Override public boolean onBreak(    Player p,    Block b,    SlimefunItem item,    UnregisterReason reason){
      for (      int slot : getInputSlots()) {
        if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
          b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
          BlockStorage.getInventory(b).replaceExistingItem(slot,null);
        }
      }
      return true;
    }
  }
);
}
Program: 79950
Project: 79950
Buggy source:
@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));
    }
  }
  progress.remove(b.getLocation());
  processing.remove(b.getLocation());
  return true;
}

Fixed version (ground truth):
@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);
      }
    }
  }
  progress.remove(b.getLocation());
  processing.remove(b.getLocation());
  return true;
}
Program: 79952
Project: 79952
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  BlockMenu inv=BlockStorage.getInventory(b);
  if (inv != null) {
    for (    int slot : getFuelSlots()) {
      if (inv.getItemInSlot(slot) != null)       b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
    }
    for (    int slot : getCoolantSlots()) {
      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):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  BlockMenu inv=BlockStorage.getInventory(b);
  if (inv != null) {
    for (    int slot : getFuelSlots()) {
      if (inv.getItemInSlot(slot) != null) {
        b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
        inv.replaceExistingItem(slot,null);
      }
    }
    for (    int slot : getCoolantSlots()) {
      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;
}
Program: 79954
Project: 79954
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  if (reason.equals(UnregisterReason.EXPLODE))   return false;
  BlockMenu inv=BlockStorage.getInventory(b);
  if (inv != null) {
    for (    int slot : getSoulSandSlots()) {
      if (inv.getItemInSlot(slot) != null)       b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
    }
    for (    int slot : getWitherSkullSlots()) {
      if (inv.getItemInSlot(slot) != null)       b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
    }
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  if (reason.equals(UnregisterReason.EXPLODE))   return false;
  BlockMenu inv=BlockStorage.getInventory(b);
  if (inv != null) {
    for (    int slot : getSoulSandSlots()) {
      if (inv.getItemInSlot(slot) != null) {
        b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
        inv.replaceExistingItem(slot,null);
      }
    }
    for (    int slot : getWitherSkullSlots()) {
      if (inv.getItemInSlot(slot) != null) {
        b.getWorld().dropItemNaturally(b.getLocation(),inv.getItemInSlot(slot));
        inv.replaceExistingItem(slot,null);
      }
    }
  }
  return true;
}
Program: 79956
Project: 79956
Buggy source:
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  me.mrCookieSlime.Slimefun.holograms.XPCollector.getArmorStand(b).remove();
  for (  int slot : getOutputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null)     b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
  }
  return true;
}

Fixed version (ground truth):
@Override public boolean onBreak(Player p,Block b,SlimefunItem item,UnregisterReason reason){
  me.mrCookieSlime.Slimefun.holograms.XPCollector.getArmorStand(b).remove();
  for (  int slot : getOutputSlots()) {
    if (BlockStorage.getInventory(b).getItemInSlot(slot) != null) {
      b.getWorld().dropItemNaturally(b.getLocation(),BlockStorage.getInventory(b).getItemInSlot(slot));
      BlockStorage.getInventory(b).replaceExistingItem(slot,null);
    }
  }
  return true;
}