Program: 75432
Project: 75432
Buggy source:
private SymbolicScheduleElement _expandAPGAN(PSDFGraph graph,ptolemy.graph.Node node,PSDFAPGANStrategy apgan){
  PSDFGraph childGraph=(PSDFGraph)apgan.getSubgraph(node);
  try {
    if (childGraph == null) {
      PSDFNodeWeight weight=(PSDFNodeWeight)node.getWeight();
      SymbolicFiring firing=new SymbolicFiring((Actor)weight.getComputation(),"String_Node_Str");
      return firing;
    }
 else {
      Schedule schedule=new Schedule();
      Edge edge=(Edge)childGraph.edges().iterator().next();
      ptolemy.graph.Node source=edge.source();
      ptolemy.graph.Node sink=edge.sink();
      SymbolicScheduleElement first=_expandAPGAN(childGraph,source,apgan);
      SymbolicScheduleElement second=_expandAPGAN(childGraph,sink,apgan);
      String producedExpression=apgan.producedExpression(edge);
      String consumedExpression=apgan.consumedExpression(edge);
      String denominator="String_Node_Str" + producedExpression + "String_Node_Str"+ consumedExpression+ "String_Node_Str";
      String firstIterations=consumedExpression + "String_Node_Str" + denominator;
      String secondIterations=producedExpression + "String_Node_Str" + denominator;
      first.setIterationCount(firstIterations);
      second.setIterationCount(secondIterations);
      schedule.add(first);
      schedule.add(second);
      SymbolicSchedule symbolicSchedule=new SymbolicSchedule(schedule,"String_Node_Str");
      return symbolicSchedule;
    }
  }
 catch (  Exception exception) {
    throw new RuntimeException("String_Node_Str" + "String_Node_Str" + exception.getMessage());
  }
}

Fixed version (ground truth):
private SymbolicScheduleElement _expandAPGAN(PSDFGraph graph,ptolemy.graph.Node node,PSDFAPGANStrategy apgan){
  PSDFGraph childGraph=(PSDFGraph)apgan.getSubgraph(node);
  try {
    if (childGraph == null) {
      PSDFNodeWeight weight=(PSDFNodeWeight)node.getWeight();
      SymbolicFiring firing=new SymbolicFiring((Actor)weight.getComputation(),"String_Node_Str");
      return firing;
    }
 else {
      Schedule schedule=new Schedule();
      Edge edge=(Edge)childGraph.edges().iterator().next();
      ptolemy.graph.Node source=edge.source();
      ptolemy.graph.Node sink=edge.sink();
      SymbolicScheduleElement first=_expandAPGAN(childGraph,source,apgan);
      SymbolicScheduleElement second=_expandAPGAN(childGraph,sink,apgan);
      String producedExpression=apgan.producedExpression(edge);
      String consumedExpression=apgan.consumedExpression(edge);
      if (producedExpression == null) {
        throw new RuntimeException("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ edge);
      }
 else       if (consumedExpression == null) {
        throw new RuntimeException("String_Node_Str" + "String_Node_Str" + "String_Node_Str"+ edge);
      }
      String denominator="String_Node_Str" + producedExpression + "String_Node_Str"+ consumedExpression+ "String_Node_Str";
      String firstIterations="String_Node_Str" + consumedExpression + "String_Node_Str"+ denominator+ "String_Node_Str";
      String secondIterations="String_Node_Str" + producedExpression + "String_Node_Str"+ denominator+ "String_Node_Str";
      first.setIterationCount(firstIterations);
      second.setIterationCount(secondIterations);
      schedule.add(first);
      schedule.add(second);
      SymbolicSchedule symbolicSchedule=new SymbolicSchedule(schedule,"String_Node_Str");
      return symbolicSchedule;
    }
  }
 catch (  Exception exception) {
    throw new RuntimeException("String_Node_Str" + "String_Node_Str" + exception.getMessage());
  }
}