Program: 158407
Project: 158407
Buggy source:
@Override public boolean removeFromZone(Game game,Zone fromZone,UUID sourceId){
  boolean removed=false;
  MageObject lkiObject=null;
switch (fromZone) {
case GRAVEYARD:
    removed=game.getPlayer(ownerId).removeFromGraveyard(this,game);
  break;
case HAND:
removed=game.getPlayer(ownerId).removeFromHand(this,game);
break;
case LIBRARY:
removed=game.getPlayer(ownerId).removeFromLibrary(this,game);
break;
case EXILED:
if (game.getExile().getCard(getId(),game) != null) {
removed=game.getExile().removeCard(this,game);
}
break;
case STACK:
StackObject stackObject;
if (getSpellAbility() != null) {
stackObject=game.getStack().getSpell(getSpellAbility().getId());
}
 else {
stackObject=game.getStack().getSpell(this.getId());
}
if (stackObject == null && (this instanceof SplitCard)) {
stackObject=game.getStack().getSpell(((SplitCard)this).getLeftHalfCard().getId());
if (stackObject == null) {
stackObject=game.getStack().getSpell(((SplitCard)this).getRightHalfCard().getId());
}
}
if (stackObject == null) {
stackObject=game.getStack().getSpell(getId());
}
if (stackObject != null) {
removed=game.getStack().remove(stackObject);
lkiObject=stackObject;
}
break;
case COMMAND:
lkiObject=(Commander)game.getObject(objectId);
if (lkiObject != null) {
removed=game.getState().getCommand().remove((Commander)game.getObject(objectId));
}
break;
case OUTSIDE:
if (isCopy()) {
removed=true;
}
 else if (game.getPlayer(ownerId).getSideboard().contains(this.getId())) {
game.getPlayer(ownerId).getSideboard().remove(this.getId());
removed=true;
}
break;
case BATTLEFIELD:
removed=true;
break;
default :
MageObject sourceObject=game.getObject(sourceId);
logger.fatal("String_Node_Str" + fromZone + "String_Node_Str"+ this.getIdName()+ "String_Node_Str"+ (sourceObject != null ? sourceObject.getName() : "String_Node_Str")+ "String_Node_Str");
break;
}
if (removed) {
game.rememberLKI(lkiObject != null ? lkiObject.getId() : objectId,fromZone,lkiObject != null ? lkiObject : this);
}
 else {
logger.warn("String_Node_Str" + getIdName() + "String_Node_Str"+ fromZone);
}
return removed;
}

Fixed version (ground truth):
@Override public boolean removeFromZone(Game game,Zone fromZone,UUID sourceId){
  boolean removed=false;
  MageObject lkiObject=null;
switch (fromZone) {
case GRAVEYARD:
    removed=game.getPlayer(ownerId).removeFromGraveyard(this,game);
  break;
case HAND:
removed=game.getPlayer(ownerId).removeFromHand(this,game);
break;
case LIBRARY:
removed=game.getPlayer(ownerId).removeFromLibrary(this,game);
break;
case EXILED:
if (game.getExile().getCard(getId(),game) != null) {
removed=game.getExile().removeCard(this,game);
}
break;
case STACK:
StackObject stackObject;
if (getSpellAbility() != null) {
stackObject=game.getStack().getSpell(getSpellAbility().getId());
}
 else {
stackObject=game.getStack().getSpell(this.getId());
}
if (stackObject == null && (this instanceof SplitCard)) {
stackObject=game.getStack().getSpell(((SplitCard)this).getLeftHalfCard().getId());
if (stackObject == null) {
stackObject=game.getStack().getSpell(((SplitCard)this).getRightHalfCard().getId());
}
}
if (stackObject == null) {
stackObject=game.getStack().getSpell(getId());
}
if (stackObject != null) {
removed=game.getStack().remove(stackObject);
lkiObject=stackObject;
}
break;
case COMMAND:
lkiObject=(Commander)game.getObject(objectId);
if (lkiObject != null) {
removed=game.getState().getCommand().remove((Commander)game.getObject(objectId));
}
break;
case OUTSIDE:
if (isCopy()) {
removed=true;
}
 else if (game.getPlayer(ownerId).getSideboard().contains(this.getId())) {
game.getPlayer(ownerId).getSideboard().remove(this.getId());
removed=true;
}
 else if (game.getPhase() == null) {
removed=true;
}
break;
case BATTLEFIELD:
removed=true;
break;
default :
MageObject sourceObject=game.getObject(sourceId);
logger.fatal("String_Node_Str" + fromZone + "String_Node_Str"+ this.getIdName()+ "String_Node_Str"+ (sourceObject != null ? sourceObject.getName() : "String_Node_Str")+ "String_Node_Str");
break;
}
if (removed) {
if (!fromZone.equals(Zone.OUTSIDE)) {
game.rememberLKI(lkiObject != null ? lkiObject.getId() : objectId,fromZone,lkiObject != null ? lkiObject : this);
}
}
 else {
logger.warn("String_Node_Str" + getIdName() + "String_Node_Str"+ fromZone);
}
return removed;
}