Program: 115631
Project: 115631
Buggy source:
public MemberContext startInstance(InstanceContext instanceContext) throws CartridgeNotFoundException, InvalidIaasProviderException, CloudControllerException {
  try {
    handleNullObject(instanceContext,"String_Node_Str");
    if (log.isDebugEnabled()) {
      log.debug("String_Node_Str" + instanceContext);
    }
    Partition partition=instanceContext.getPartition();
    handleNullObject(partition,"String_Node_Str");
    String partitionId=partition.getId();
    String clusterId=instanceContext.getClusterId();
    ClusterContext clusterContext=CloudControllerContext.getInstance().getClusterContext(clusterId);
    handleNullObject(clusterContext,"String_Node_Str" + clusterId);
    String cartridgeType=clusterContext.getCartridgeType();
    Cartridge cartridge=CloudControllerContext.getInstance().getCartridge(cartridgeType);
    if (cartridge == null) {
      String msg="String_Node_Str" + cartridgeType;
      log.error(msg);
      throw new CartridgeNotFoundException(msg);
    }
    IaasProvider iaasProvider=CloudControllerContext.getInstance().getIaasProviderOfPartition(cartridge.getType(),partitionId);
    if (iaasProvider == null) {
      String msg=String.format("String_Node_Str" + "String_Node_Str" + "String_Node_Str",cartridgeType,partitionId,CloudControllerContext.getInstance().getPartitionToIaasProvider(cartridge.getType()).keySet().toString());
      log.error(msg);
      throw new InvalidIaasProviderException(msg);
    }
    String memberId=generateMemberId(clusterId);
    String applicationId=clusterContext.getApplicationId();
    MemberContext memberContext=createMemberContext(applicationId,cartridgeType,memberId,CloudControllerUtil.getLoadBalancingIPTypeEnumFromString(cartridge.getLoadBalancingIPType()),instanceContext);
    StringBuilder payload=new StringBuilder(clusterContext.getPayload());
    addToPayload(payload,"String_Node_Str",memberId);
    addToPayload(payload,"String_Node_Str",memberContext.getInstanceId());
    addToPayload(payload,"String_Node_Str",memberContext.getClusterInstanceId());
    addToPayload(payload,"String_Node_Str",memberContext.getLbClusterId());
    addToPayload(payload,"String_Node_Str",memberContext.getNetworkPartitionId());
    addToPayload(payload,"String_Node_Str",partitionId);
    addToPayload(payload,"String_Node_Str","String_Node_Str");
    if (memberContext.getProperties() != null) {
      org.apache.stratos.common.Properties properties=memberContext.getProperties();
      if (properties != null) {
        for (        Property prop : properties.getProperties()) {
          addToPayload(payload,prop.getName(),String.valueOf(prop.getValue()));
        }
      }
    }
    NetworkPartition networkPartition=CloudControllerContext.getInstance().getNetworkPartition(memberContext.getNetworkPartitionId());
    if (networkPartition.getProperties() != null) {
      if (networkPartition.getProperties().getProperties() != null) {
        for (        Property property : networkPartition.getProperties().getProperties()) {
          if (property.getName().startsWith(PAYLOAD_PARAMETER)) {
            String propertyName=property.getName();
            String payloadParamName=propertyName.substring(propertyName.indexOf("String_Node_Str") + 1);
            addToPayload(payload,payloadParamName,property.getValue());
          }
        }
      }
    }
    Iaas iaas=iaasProvider.getIaas();
    if (clusterContext.isVolumeRequired()) {
      addToPayload(payload,PERSISTENCE_MAPPING,getPersistencePayload(clusterContext,iaas).toString());
    }
    if (log.isDebugEnabled()) {
      log.debug("String_Node_Str" + payload.toString());
    }
    if (clusterContext.isVolumeRequired()) {
      Volume[] volumes=clusterContext.getVolumes();
      if (volumes != null) {
        for (int i=0; i < volumes.length; i++) {
          if (volumes[i].getId() == null) {
            volumes[i]=createVolumeAndSetInClusterContext(volumes[i],iaasProvider);
          }
        }
      }
      clusterContext.setVolumes(volumes);
    }
    TopologyBuilder.handleMemberCreatedEvent(memberContext);
    CloudControllerContext.getInstance().addMemberContext(memberContext);
    CloudControllerContext.getInstance().persist();
    if (log.isDebugEnabled()) {
      log.debug(String.format("String_Node_Str" + "String_Node_Str",instanceContext.getClusterId(),instanceContext.getClusterInstanceId(),memberId,applicationId));
    }
    executorService.execute(new InstanceCreator(memberContext,iaasProvider,payload.toString().getBytes()));
    return memberContext;
  }
 catch (  Exception e) {
    String msg=String.format("String_Node_Str",instanceContext.getClusterId(),instanceContext.getClusterInstanceId());
    log.error(msg,e);
    throw new CloudControllerException(msg,e);
  }
}

Fixed version (ground truth):
public MemberContext startInstance(InstanceContext instanceContext) throws CartridgeNotFoundException, InvalidIaasProviderException, CloudControllerException {
  try {
    handleNullObject(instanceContext,"String_Node_Str");
    if (log.isDebugEnabled()) {
      log.debug("String_Node_Str" + instanceContext);
    }
    Partition partition=instanceContext.getPartition();
    handleNullObject(partition,"String_Node_Str");
    String partitionId=partition.getId();
    String clusterId=instanceContext.getClusterId();
    ClusterContext clusterContext=CloudControllerContext.getInstance().getClusterContext(clusterId);
    handleNullObject(clusterContext,"String_Node_Str" + clusterId);
    String cartridgeType=clusterContext.getCartridgeType();
    Cartridge cartridge=CloudControllerContext.getInstance().getCartridge(cartridgeType);
    if (cartridge == null) {
      String msg="String_Node_Str" + cartridgeType;
      log.error(msg);
      throw new CartridgeNotFoundException(msg);
    }
    IaasProvider iaasProvider=CloudControllerContext.getInstance().getIaasProviderOfPartition(cartridge.getType(),partitionId);
    if (iaasProvider == null) {
      String msg=String.format("String_Node_Str" + "String_Node_Str" + "String_Node_Str",cartridgeType,partitionId,CloudControllerContext.getInstance().getPartitionToIaasProvider(cartridge.getType()).keySet().toString());
      log.error(msg);
      throw new InvalidIaasProviderException(msg);
    }
    String memberId=generateMemberId(clusterId);
    String applicationId=clusterContext.getApplicationId();
    MemberContext memberContext=createMemberContext(applicationId,cartridgeType,memberId,CloudControllerUtil.getLoadBalancingIPTypeEnumFromString(cartridge.getLoadBalancingIPType()),instanceContext);
    StringBuilder payload=new StringBuilder(clusterContext.getPayload());
    addToPayload(payload,"String_Node_Str",memberId);
    addToPayload(payload,"String_Node_Str",memberContext.getInstanceId());
    addToPayload(payload,"String_Node_Str",memberContext.getClusterInstanceId());
    addToPayload(payload,"String_Node_Str",memberContext.getLbClusterId());
    addToPayload(payload,"String_Node_Str",memberContext.getNetworkPartitionId());
    addToPayload(payload,"String_Node_Str",partitionId);
    addToPayload(payload,"String_Node_Str","String_Node_Str");
    if (memberContext.getProperties() != null) {
      org.apache.stratos.common.Properties properties=memberContext.getProperties();
      if (properties != null) {
        for (        Property prop : properties.getProperties()) {
          addToPayload(payload,prop.getName(),String.valueOf(prop.getValue()));
        }
      }
    }
    NetworkPartition networkPartition=CloudControllerContext.getInstance().getNetworkPartition(memberContext.getNetworkPartitionId());
    if (networkPartition.getProperties() != null) {
      if (networkPartition.getProperties().getProperties() != null) {
        for (        Property property : networkPartition.getProperties().getProperties()) {
          if (property.getName().startsWith(PAYLOAD_PARAMETER)) {
            String propertyName=property.getName();
            String payloadParamName=propertyName.substring(propertyName.indexOf("String_Node_Str") + 1);
            if (payload.toString().contains(payloadParamName)) {
              replaceInPayload(payloadParamName,payload,payloadParamName,property.getValue());
            }
 else {
              addToPayload(payload,payloadParamName,property.getValue());
            }
          }
        }
      }
    }
    Iaas iaas=iaasProvider.getIaas();
    if (clusterContext.isVolumeRequired()) {
      addToPayload(payload,PERSISTENCE_MAPPING,getPersistencePayload(clusterContext,iaas).toString());
    }
    if (log.isDebugEnabled()) {
      log.debug("String_Node_Str" + payload.toString());
    }
    if (clusterContext.isVolumeRequired()) {
      Volume[] volumes=clusterContext.getVolumes();
      if (volumes != null) {
        for (int i=0; i < volumes.length; i++) {
          if (volumes[i].getId() == null) {
            volumes[i]=createVolumeAndSetInClusterContext(volumes[i],iaasProvider);
          }
        }
      }
      clusterContext.setVolumes(volumes);
    }
    TopologyBuilder.handleMemberCreatedEvent(memberContext);
    CloudControllerContext.getInstance().addMemberContext(memberContext);
    CloudControllerContext.getInstance().persist();
    if (log.isDebugEnabled()) {
      log.debug(String.format("String_Node_Str" + "String_Node_Str",instanceContext.getClusterId(),instanceContext.getClusterInstanceId(),memberId,applicationId));
    }
    executorService.execute(new InstanceCreator(memberContext,iaasProvider,payload.toString().getBytes()));
    return memberContext;
  }
 catch (  Exception e) {
    String msg=String.format("String_Node_Str",instanceContext.getClusterId(),instanceContext.getClusterInstanceId());
    log.error(msg,e);
    throw new CloudControllerException(msg,e);
  }
}