Program: 158863
Project: 158863
Buggy source:
public PermanentImpl(final PermanentImpl permanent){
  super(permanent);
  this.tapped=permanent.tapped;
  this.flipped=permanent.flipped;
  this.originalControllerId=permanent.originalControllerId;
  this.controllerId=permanent.controllerId;
  this.damage=permanent.damage;
  this.controlledFromStartOfControllerTurn=permanent.controlledFromStartOfControllerTurn;
  this.turnsOnBattlefield=permanent.turnsOnBattlefield;
  this.phasedIn=permanent.phasedIn;
  this.faceDown=permanent.faceDown;
  this.attacking=permanent.attacking;
  this.blocking=permanent.blocking;
  this.maxBlocks=permanent.maxBlocks;
  this.deathtouched=permanent.deathtouched;
  this.attachments.addAll(permanent.attachments);
  for (  Map.Entry<String,List<UUID>> entry : permanent.connectedCards.entrySet()) {
    this.connectedCards.put(entry.getKey(),entry.getValue());
  }
  if (permanent.dealtDamageByThisTurn != null) {
    dealtDamageByThisTurn=new HashSet<>(permanent.dealtDamageByThisTurn);
  }
  if (permanent.markedDamage != null) {
    markedDamage=new ArrayList<>();
    for (    Counter counter : permanent.markedDamage) {
      markedDamage.add(counter.copy());
    }
  }
  if (permanent.info != null) {
    info=new HashMap<>();
    info.putAll(permanent.info);
  }
  this.counters=permanent.counters.copy();
  this.attachedTo=permanent.attachedTo;
  this.minBlockedBy=permanent.minBlockedBy;
  this.maxBlockedBy=permanent.maxBlockedBy;
  this.transformed=permanent.transformed;
  this.monstrous=permanent.monstrous;
  this.pairedCard=permanent.pairedCard;
  this.timesLoyaltyUsed=permanent.timesLoyaltyUsed;
  this.morphed=permanent.morphed;
  this.manifested=permanent.manifested;
  this.createOrder=permanent.createOrder;
}

Fixed version (ground truth):
public PermanentImpl(final PermanentImpl permanent){
  super(permanent);
  this.tapped=permanent.tapped;
  this.flipped=permanent.flipped;
  this.originalControllerId=permanent.originalControllerId;
  this.controllerId=permanent.controllerId;
  this.damage=permanent.damage;
  this.controlledFromStartOfControllerTurn=permanent.controlledFromStartOfControllerTurn;
  this.turnsOnBattlefield=permanent.turnsOnBattlefield;
  this.phasedIn=permanent.phasedIn;
  this.faceDown=permanent.faceDown;
  this.attacking=permanent.attacking;
  this.blocking=permanent.blocking;
  this.maxBlocks=permanent.maxBlocks;
  this.deathtouched=permanent.deathtouched;
  this.attachments.addAll(permanent.attachments);
  for (  Map.Entry<String,List<UUID>> entry : permanent.connectedCards.entrySet()) {
    this.connectedCards.put(entry.getKey(),entry.getValue());
  }
  if (permanent.dealtDamageByThisTurn != null) {
    dealtDamageByThisTurn=new HashSet<>(permanent.dealtDamageByThisTurn);
  }
  if (permanent.markedDamage != null) {
    markedDamage=new ArrayList<>();
    for (    Counter counter : permanent.markedDamage) {
      markedDamage.add(counter.copy());
    }
  }
  if (permanent.info != null) {
    info=new HashMap<>();
    info.putAll(permanent.info);
  }
  this.counters=permanent.counters.copy();
  this.attachedTo=permanent.attachedTo;
  this.minBlockedBy=permanent.minBlockedBy;
  this.maxBlockedBy=permanent.maxBlockedBy;
  this.transformed=permanent.transformed;
  this.monstrous=permanent.monstrous;
  this.renown=permanent.renown;
  this.pairedCard=permanent.pairedCard;
  this.timesLoyaltyUsed=permanent.timesLoyaltyUsed;
  this.morphed=permanent.morphed;
  this.manifested=permanent.manifested;
  this.createOrder=permanent.createOrder;
}