Program: 57626
Project: 57626
Buggy source:
/** 
 * <p> Returns a semi-deep copy of the selection manager. That means that all containers have been cloned to be modifiable without affecting the source manager, however the elements themselves such as Integers or SelectionTypes are the same (this is necessary for SelectionTypes and should be fine for other values since they are not changed). </p> <p> Notice that the clone does not contain a virtual array! <b>It must be explicitly set by the receiver.</b> </p>
 */
@Override @SuppressWarnings("String_Node_Str") public SelectionManager clone(){
  SelectionManager clone;
  try {
    clone=(SelectionManager)super.clone();
  }
 catch (  CloneNotSupportedException e) {
    throw new IllegalStateException("String_Node_Str" + e.getMessage());
  }
  clone.registerEventListeners();
  clone.hashConnectionToElementID=(HashMap<Integer,ArrayList<Integer>>)this.hashConnectionToElementID.clone();
  for (  Integer id : clone.hashConnectionToElementID.keySet()) {
    clone.hashConnectionToElementID.put(id,(ArrayList<Integer>)this.hashConnectionToElementID.get(id).clone());
  }
  clone.hashSelectionTypes=(HashMap<SelectionType,HashMap<Integer,Integer>>)this.hashSelectionTypes.clone();
  for (  SelectionType selectionType : clone.hashSelectionTypes.keySet()) {
    clone.hashSelectionTypes.put(selectionType,(HashMap<Integer,Integer>)this.hashSelectionTypes.get(selectionType).clone());
  }
  clone.deltaBlackList=(HashMap<SelectionType,Boolean>)this.deltaBlackList.clone();
  clone.selectionTypes=(ArrayList<SelectionType>)this.selectionTypes.clone();
  clone.selectionDelta=new SelectionDelta(idType);
  return clone;
}

Fixed version (ground truth):
/** 
 * <p> Returns a semi-deep copy of the selection manager. That means that all containers have been cloned to be modifiable without affecting the source manager, however the elements themselves such as Integers or SelectionTypes are the same (this is necessary for SelectionTypes and should be fine for other values since they are not changed). </p> <p> Notice that the clone does not contain a virtual array! <b>It must be explicitly set by the receiver.</b> </p>
 */
@Override @SuppressWarnings("String_Node_Str") public synchronized SelectionManager clone(){
  SelectionManager clone;
  try {
    clone=(SelectionManager)super.clone();
  }
 catch (  CloneNotSupportedException e) {
    throw new IllegalStateException("String_Node_Str" + e.getMessage());
  }
  clone.registerEventListeners();
  clone.hashConnectionToElementID=(HashMap<Integer,ArrayList<Integer>>)this.hashConnectionToElementID.clone();
  for (  Integer id : clone.hashConnectionToElementID.keySet()) {
    clone.hashConnectionToElementID.put(id,(ArrayList<Integer>)this.hashConnectionToElementID.get(id).clone());
  }
  clone.hashSelectionTypes=(HashMap<SelectionType,HashMap<Integer,Integer>>)this.hashSelectionTypes.clone();
  for (  SelectionType selectionType : clone.hashSelectionTypes.keySet()) {
    clone.hashSelectionTypes.put(selectionType,(HashMap<Integer,Integer>)this.hashSelectionTypes.get(selectionType).clone());
  }
  clone.deltaBlackList=(HashMap<SelectionType,Boolean>)this.deltaBlackList.clone();
  clone.selectionTypes=(ArrayList<SelectionType>)this.selectionTypes.clone();
  clone.selectionDelta=new SelectionDelta(idType);
  return clone;
}