Program: 72488
Project: 72488
Buggy source:
/** 
 * Update the HLA attribute <i>attributeName</i> with the containment of the token <i>in</i>. The updated attribute is sent to the HLA/CERTI Federation.
 * @param hp The HLA publisher actor (HLA attribute) to update.
 * @param in The updated value of the HLA attribute to update.
 * @throws IllegalActionException If a CERTI exception is raised thendisplayed it to the user.
 */
void updateHlaAttribute(HlaPublisher hp,Token in,String senderName) throws IllegalActionException {
  Time currentTime=_director.getModelTime();
  Object[] tObj=_hlaAttributesToPublish.get(hp.getName());
  byte[] valAttribute=MessageProcessing.encodeHlaValue(hp,in);
  if (_debugging) {
    if (hp.useCertiMessageBuffer()) {
      _debug(this.getDisplayName() + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ _director.getModelTime().getDoubleValue());
    }
  }
  SuppliedAttributes suppAttributes=null;
  try {
    suppAttributes=RtiFactoryFactory.getRtiFactory().createSuppliedAttributes();
  }
 catch (  RTIinternalError e) {
    throw new IllegalActionException(this,e,"String_Node_Str");
  }
  suppAttributes.add(_getAttributeHandleFromTab(tObj),valAttribute);
  byte[] tag=EncodingHelpers.encodeString(_getPortFromTab(tObj).getContainer().getName());
  double messageModelTime=currentTime.getDoubleValue() + _hlaLookAHead;
  CertiLogicalTime ct=new CertiLogicalTime(messageModelTime * _hlaTimeUnitValue);
  if (_debugging) {
    _debug(this.getDisplayName() + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ currentTime.getDoubleValue()+ "String_Node_Str"+ _getPortFromTab(tObj).getContainer().getName()+ "String_Node_Str"+ ct.getTime()+ "String_Node_Str"+ in.toString()+ "String_Node_Str");
  }
  try {
    int id=_registeredObject.get(_federateName + "String_Node_Str" + senderName);
    _rtia.updateAttributeValues(id,suppAttributes,tag,ct);
  }
 catch (  Exception e) {
    throw new IllegalActionException(this,e,e.getMessage());
  }
}

Fixed version (ground truth):
/** 
 * Update the HLA attribute <i>attributeName</i> with the containment of the token <i>in</i>. The updated attribute is sent to the HLA/CERTI Federation.
 * @param hp The HLA publisher actor (HLA attribute) to update.
 * @param in The updated value of the HLA attribute to update.
 * @exception IllegalActionException If a CERTI exception is raised thendisplayed it to the user.
 */
void updateHlaAttribute(HlaPublisher hp,Token in,String senderName) throws IllegalActionException {
  Time currentTime=_director.getModelTime();
  Object[] tObj=_hlaAttributesToPublish.get(hp.getName());
  byte[] valAttribute=MessageProcessing.encodeHlaValue(hp,in);
  if (_debugging) {
    if (hp.useCertiMessageBuffer()) {
      _debug(this.getDisplayName() + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ _director.getModelTime().getDoubleValue());
    }
  }
  SuppliedAttributes suppAttributes=null;
  try {
    suppAttributes=RtiFactoryFactory.getRtiFactory().createSuppliedAttributes();
  }
 catch (  RTIinternalError e) {
    throw new IllegalActionException(this,e,"String_Node_Str");
  }
  suppAttributes.add(_getAttributeHandleFromTab(tObj),valAttribute);
  byte[] tag=EncodingHelpers.encodeString(_getPortFromTab(tObj).getContainer().getName());
  double messageModelTime=currentTime.getDoubleValue() + _hlaLookAHead;
  CertiLogicalTime ct=new CertiLogicalTime(messageModelTime * _hlaTimeUnitValue);
  if (_debugging) {
    _debug(this.getDisplayName() + "String_Node_Str" + "String_Node_Str"+ "String_Node_Str"+ currentTime.getDoubleValue()+ "String_Node_Str"+ _getPortFromTab(tObj).getContainer().getName()+ "String_Node_Str"+ ct.getTime()+ "String_Node_Str"+ in.toString()+ "String_Node_Str");
  }
  try {
    int id=_registeredObject.get(_federateName + "String_Node_Str" + senderName);
    _rtia.updateAttributeValues(id,suppAttributes,tag,ct);
  }
 catch (  Exception e) {
    throw new IllegalActionException(this,e,e.getMessage());
  }
}