Program: 74863
Project: 74863
Buggy source:
/** 
 * Override the base class to also set the expression of shared parameters.
 */
public void setExpression(String expression){
  boolean previousSuppress=isSuppressingPropagation();
  try {
    setSuppressingPropagation(true);
    super.setExpression(expression);
  }
  finally {
    setSuppressingPropagation(previousSuppress);
  }
  try {
    LongToken token=(LongToken)getToken();
    long value=0L;
    if (token != null) {
      value=token.longValue();
    }
    if (value == 0L) {
      super.setExpression(expression);
    }
 else {
      if (!isSuppressingPropagation()) {
        NamedObj toplevel=getRoot();
        if (toplevel != null) {
          Iterator sharedParameters=sharedParameterList(toplevel).iterator();
          while (sharedParameters.hasNext()) {
            ColtSeedParameter sharedParameter=(ColtSeedParameter)sharedParameters.next();
            if (sharedParameter != this) {
              try {
                sharedParameter.setSuppressingPropagation(true);
                value++;
                String newExpression=value + "String_Node_Str";
                if (!sharedParameter.getExpression().equals(newExpression)) {
                  sharedParameter.setExpression(newExpression);
                  sharedParameter.setPersistent(false);
                }
              }
  finally {
                sharedParameter.setSuppressingPropagation(previousSuppress);
              }
            }
          }
        }
      }
    }
  }
 catch (  IllegalActionException ex) {
    throw new InternalErrorException(ex);
  }
}

Fixed version (ground truth):
/** 
 * Override the base class to also set the expression of shared parameters.
 */
public void setExpression(String expression){
  boolean previousSuppress=isSuppressingPropagation();
  try {
    setSuppressingPropagation(true);
    super.setExpression(expression);
  }
  finally {
    setSuppressingPropagation(previousSuppress);
  }
  try {
    LongToken token=(LongToken)getToken();
    long value=0L;
    if (token != null) {
      value=token.longValue();
    }
    if (value == 0L) {
      super.setExpression(expression);
      setPersistent(false);
    }
 else {
      if (!isSuppressingPropagation()) {
        setPersistent(true);
        NamedObj toplevel=getRoot();
        if (toplevel != null) {
          Iterator sharedParameters=sharedParameterList(toplevel).iterator();
          while (sharedParameters.hasNext()) {
            ColtSeedParameter sharedParameter=(ColtSeedParameter)sharedParameters.next();
            if (sharedParameter != this) {
              try {
                sharedParameter.setSuppressingPropagation(true);
                value++;
                String newExpression=value + "String_Node_Str";
                if (!sharedParameter.getExpression().equals(newExpression)) {
                  sharedParameter.setExpression(newExpression);
                  sharedParameter.setPersistent(false);
                }
              }
  finally {
                sharedParameter.setSuppressingPropagation(previousSuppress);
              }
            }
          }
        }
      }
    }
  }
 catch (  IllegalActionException ex) {
    throw new InternalErrorException(ex);
  }
}