Program: 73874
Project: 73874
Buggy source:
/** 
 * Clone the actor into the specified workspace. The new object is <i>not</i> added to the directory of that workspace (you must do this yourself if you want it there). The result is a composite actor with clones of the ports of the original actor, the contained actors, and the contained relations. The ports of the returned actor are not connected to anything. The connections of the relations are duplicated in the new composite, unless they cross levels, in which case an exception is thrown. The local director is cloned, if there is one. The executive director is not cloned. NOTE: This will not work if there are level-crossing transitions.
 * @param workspace The workspace for the cloned object.
 * @exception CloneNotSupportedException If the actor containslevel crossing transitions so that its connections cannot be cloned, or if one of the attributes cannot be cloned.
 * @return A new CompositeActor.
 */
public Object clone(Workspace workspace) throws CloneNotSupportedException {
  List<Initializable> oldInitializables=_initializables;
  _initializables=null;
  Map<String,List<IOPort>> oldPublishedPorts=_publishedPorts;
  _publishedPorts=null;
  Map<String,IORelation> oldPublisherRelations=_publisherRelations;
  Director oldDirector=_director;
  _director=null;
  List<Executable> oldPiggybacks=_piggybacks;
  _piggybacks=null;
  CompositeActor newObject=(CompositeActor)super.clone(workspace);
  _initializables=oldInitializables;
  _publishedPorts=oldPublishedPorts;
  _publisherRelations=oldPublisherRelations;
  _director=oldDirector;
  _piggybacks=oldPiggybacks;
  newObject._actorFiringListeners=null;
  newObject._causalityInterface=null;
  newObject._derivedPiggybacks=null;
  newObject._manager=null;
  newObject._inputPortsVersion=-1;
  newObject._outputPortsVersion=-1;
  newObject._causalityInterfaceDirector=null;
  newObject._receiversVersion=-1L;
  newObject._relationWidthInference=null;
  return newObject;
}

Fixed version (ground truth):
/** 
 * Clone the actor into the specified workspace. The new object is <i>not</i> added to the directory of that workspace (you must do this yourself if you want it there). The result is a composite actor with clones of the ports of the original actor, the contained actors, and the contained relations. The ports of the returned actor are not connected to anything. The connections of the relations are duplicated in the new composite, unless they cross levels, in which case an exception is thrown. The local director is cloned, if there is one. The executive director is not cloned. NOTE: This will not work if there are level-crossing transitions.
 * @param workspace The workspace for the cloned object.
 * @exception CloneNotSupportedException If the actor containslevel crossing transitions so that its connections cannot be cloned, or if one of the attributes cannot be cloned.
 * @return A new CompositeActor.
 */
public Object clone(Workspace workspace) throws CloneNotSupportedException {
  List<Initializable> oldInitializables=_initializables;
  _initializables=null;
  Map<String,List<IOPort>> oldPublishedPorts=_publishedPorts;
  _publishedPorts=null;
  Map<String,IORelation> oldPublisherRelations=_publisherRelations;
  Director oldDirector=_director;
  _director=null;
  List<Executable> oldPiggybacks=_piggybacks;
  _piggybacks=null;
  CompositeActor newObject=(CompositeActor)super.clone(workspace);
  _initializables=oldInitializables;
  _publishedPorts=oldPublishedPorts;
  _publisherRelations=oldPublisherRelations;
  _director=oldDirector;
  _piggybacks=oldPiggybacks;
  newObject._actorFiringListeners=null;
  newObject._causalityInterface=null;
  newObject._derivedPiggybacks=null;
  newObject._manager=null;
  newObject._inputPortsVersion=-1;
  newObject._outputPortsVersion=-1;
  newObject._causalityInterfaceDirector=null;
  newObject._receiversVersion=-1L;
  newObject._relationWidthInference=new RelationWidthInference(newObject);
  return newObject;
}