Program: 116584
Project: 116584
Buggy source:
private Group parseGroup(String appId,int tenantId,String key,GroupContext groupCtxt,Map<String,SubscribableInfoContext> subscribableInfoCtxts,Map<String,GroupContext> definedGroupCtxts) throws ApplicationDefinitionException {
  GroupContext definedGroupDef=definedGroupCtxts.get(groupCtxt.getAlias());
  if (definedGroupDef == null) {
    handleError("String_Node_Str" + groupCtxt.getName() + "String_Node_Str"+ groupCtxt.getAlias()+ "String_Node_Str");
  }
  Group group=new Group(groupCtxt.getName(),groupCtxt.getAlias());
  group.setAutoscalingPolicy(groupCtxt.getAutoscalingPolicy());
  group.setDeploymentPolicy(groupCtxt.getDeploymentPolicy());
  DependencyOrder dependencyOrder=new DependencyOrder();
  Set<StartupOrder> startupOrders=getStartupOrderForGroup(groupCtxt.getName());
  if (startupOrders != null) {
    dependencyOrder.setStartupOrders(startupOrders);
  }
  dependencyOrder.setKillbehavior(getKillbehaviour(groupCtxt.getName()));
  group.setDependencyOrder(dependencyOrder);
  Map<String,ClusterDataHolder> clusterDataMap;
  if (groupCtxt.getSubscribableContexts() != null) {
    clusterDataMap=parseLeafLevelSubscriptions(appId,tenantId,key,groupCtxt.getName(),Arrays.asList(groupCtxt.getSubscribableContexts()),subscribableInfoCtxts);
    group.setClusterData(clusterDataMap);
  }
  if (groupCtxt.getGroupContexts() != null) {
    Map<String,Group> nestedGroups=new HashMap<String,Group>();
    for (    GroupContext subGroupCtxt : groupCtxt.getGroupContexts()) {
      subGroupCtxt=definedGroupCtxts.get(subGroupCtxt.getAlias());
      Group nestedGroup=parseGroup(appId,tenantId,key,subGroupCtxt,subscribableInfoCtxts,definedGroupCtxts);
      nestedGroups.put(nestedGroup.getName(),nestedGroup);
    }
    group.setGroups(nestedGroups);
  }
  return group;
}

Fixed version (ground truth):
private Group parseGroup(String appId,int tenantId,String key,GroupContext groupCtxt,Map<String,SubscribableInfoContext> subscribableInfoCtxts,Map<String,GroupContext> definedGroupCtxts) throws ApplicationDefinitionException {
  GroupContext definedGroupDef=definedGroupCtxts.get(groupCtxt.getAlias());
  if (definedGroupDef == null) {
    handleError("String_Node_Str" + groupCtxt.getName() + "String_Node_Str"+ groupCtxt.getAlias()+ "String_Node_Str");
  }
  Group group=new Group(groupCtxt.getName(),groupCtxt.getAlias());
  group.setAutoscalingPolicy(groupCtxt.getAutoscalingPolicy());
  group.setDeploymentPolicy(groupCtxt.getDeploymentPolicy());
  DependencyOrder dependencyOrder=new DependencyOrder();
  Set<StartupOrder> startupOrders=getStartupOrderForGroup(groupCtxt.getName());
  if (startupOrders != null) {
    dependencyOrder.setStartupOrders(startupOrders);
  }
  dependencyOrder.setKillbehavior(getKillbehaviour(groupCtxt.getName()));
  group.setDependencyOrder(dependencyOrder);
  Map<String,ClusterDataHolder> clusterDataMap;
  if (groupCtxt.getSubscribableContexts() != null) {
    clusterDataMap=parseLeafLevelSubscriptions(appId,tenantId,key,groupCtxt.getName(),Arrays.asList(groupCtxt.getSubscribableContexts()),subscribableInfoCtxts);
    group.setClusterData(clusterDataMap);
  }
  if (groupCtxt.getGroupContexts() != null) {
    Map<String,Group> nestedGroups=new HashMap<String,Group>();
    for (    GroupContext subGroupCtxt : groupCtxt.getGroupContexts()) {
      subGroupCtxt=definedGroupCtxts.get(subGroupCtxt.getAlias());
      Group nestedGroup=parseGroup(appId,tenantId,key,subGroupCtxt,subscribableInfoCtxts,definedGroupCtxts);
      nestedGroups.put(nestedGroup.getAlias(),nestedGroup);
    }
    group.setGroups(nestedGroups);
  }
  return group;
}