Program: 156837
Project: 156837
Buggy source:
@Override public void writeEntityToNBT(NBTTagCompound nbt){
  super.writeEntityToNBT(nbt);
  NBTTagCompound linkedStationNBT=new NBTTagCompound();
  NBTTagCompound linkedStationIndexNBT=new NBTTagCompound();
  linkedDockingStation.index().writeTo(linkedStationIndexNBT);
  linkedStationNBT.setTag("String_Node_Str",linkedStationIndexNBT);
  linkedStationNBT.setByte("String_Node_Str",(byte)linkedDockingStation.side().ordinal());
  nbt.setTag("String_Node_Str",linkedStationNBT);
  if (currentDockingStation != null) {
    NBTTagCompound currentStationNBT=new NBTTagCompound();
    NBTTagCompound currentStationIndexNBT=new NBTTagCompound();
    currentDockingStation.index().writeTo(currentStationIndexNBT);
    currentStationNBT.setTag("String_Node_Str",currentStationIndexNBT);
    currentStationNBT.setByte("String_Node_Str",(byte)currentDockingStation.side().ordinal());
    nbt.setTag("String_Node_Str",currentStationNBT);
  }
  NBTTagCompound nbtLaser=new NBTTagCompound();
  laser.writeToNBT(nbtLaser);
  nbt.setTag("String_Node_Str",nbtLaser);
  nbt.setDouble("String_Node_Str",mjStored);
  if (itemInUse != null) {
    NBTTagCompound itemNBT=new NBTTagCompound();
    itemInUse.writeToNBT(itemNBT);
    nbt.setTag("String_Node_Str",itemNBT);
    nbt.setBoolean("String_Node_Str",itemActive);
  }
  for (int i=0; i < inv.length; ++i) {
    NBTTagCompound stackNbt=new NBTTagCompound();
    if (inv[i] != null) {
      nbt.setTag("String_Node_Str" + i + "String_Node_Str",inv[i].writeToNBT(stackNbt));
    }
  }
  nbt.setTag("String_Node_Str",originalBoardNBT);
  NBTTagCompound ai=new NBTTagCompound();
  mainAI.writeToNBT(ai);
  nbt.setTag("String_Node_Str",ai);
  if (mainAI.getDelegateAI() != board) {
    NBTTagCompound boardNBT=new NBTTagCompound();
    board.writeToNBT(boardNBT);
    nbt.setTag("String_Node_Str",boardNBT);
  }
  nbt.setLong("String_Node_Str",robotId);
  if (tank != null) {
    NBTTagCompound tankNBT=new NBTTagCompound();
    tank.writeToNBT(tankNBT);
    nbt.setTag("String_Node_Str",tankNBT);
  }
}

Fixed version (ground truth):
@Override public void writeEntityToNBT(NBTTagCompound nbt){
  super.writeEntityToNBT(nbt);
  NBTTagCompound linkedStationNBT=new NBTTagCompound();
  NBTTagCompound linkedStationIndexNBT=new NBTTagCompound();
  linkedDockingStationIndex.writeTo(linkedStationIndexNBT);
  linkedStationNBT.setTag("String_Node_Str",linkedStationIndexNBT);
  linkedStationNBT.setByte("String_Node_Str",(byte)linkedDockingStationSide.ordinal());
  nbt.setTag("String_Node_Str",linkedStationNBT);
  if (currentDockingStationIndex != null) {
    NBTTagCompound currentStationNBT=new NBTTagCompound();
    NBTTagCompound currentStationIndexNBT=new NBTTagCompound();
    currentDockingStationIndex.writeTo(currentStationIndexNBT);
    currentStationNBT.setTag("String_Node_Str",currentStationIndexNBT);
    currentStationNBT.setByte("String_Node_Str",(byte)currentDockingStationSide.ordinal());
    nbt.setTag("String_Node_Str",currentStationNBT);
  }
  NBTTagCompound nbtLaser=new NBTTagCompound();
  laser.writeToNBT(nbtLaser);
  nbt.setTag("String_Node_Str",nbtLaser);
  nbt.setDouble("String_Node_Str",mjStored);
  if (itemInUse != null) {
    NBTTagCompound itemNBT=new NBTTagCompound();
    itemInUse.writeToNBT(itemNBT);
    nbt.setTag("String_Node_Str",itemNBT);
    nbt.setBoolean("String_Node_Str",itemActive);
  }
  for (int i=0; i < inv.length; ++i) {
    NBTTagCompound stackNbt=new NBTTagCompound();
    if (inv[i] != null) {
      nbt.setTag("String_Node_Str" + i + "String_Node_Str",inv[i].writeToNBT(stackNbt));
    }
  }
  nbt.setTag("String_Node_Str",originalBoardNBT);
  NBTTagCompound ai=new NBTTagCompound();
  mainAI.writeToNBT(ai);
  nbt.setTag("String_Node_Str",ai);
  if (mainAI.getDelegateAI() != board) {
    NBTTagCompound boardNBT=new NBTTagCompound();
    board.writeToNBT(boardNBT);
    nbt.setTag("String_Node_Str",boardNBT);
  }
  nbt.setLong("String_Node_Str",robotId);
  if (tank != null) {
    NBTTagCompound tankNBT=new NBTTagCompound();
    tank.writeToNBT(tankNBT);
    nbt.setTag("String_Node_Str",tankNBT);
  }
}