Program: 41539
Project: 41539
Buggy source:
public boolean handleOpenStackLiberty12WithUbuntu1404(TemplatePlanContext context,AbstractNodeTemplate nodeTemplate){
  AbstractNodeTemplate ubuntuNodeTemplate=this.findUbuntuNode(nodeTemplate);
  Variable ubuntuAMIIdVar=null;
  if (ubuntuNodeTemplate == null) {
    LOG.error("String_Node_Str");
    return false;
  }
  if (this.isUbuntuNodeTypeWithImplicitImage(ubuntuNodeTemplate.getType().getId())) {
    ubuntuAMIIdVar=context.createGlobalStringVariable("String_Node_Str",this.createUbuntuImageStringFromNodeType(ubuntuNodeTemplate.getType().getId()));
  }
  LOG.debug("String_Node_Str" + ubuntuNodeTemplate.getId() + "String_Node_Str"+ ubuntuNodeTemplate.getType().getId().toString());
  Variable instanceIdPropWrapper=null;
  for (  String instanceIdName : PluginUtils.getSupportedVirtualMachineInstanceIdPropertyNames()) {
    instanceIdPropWrapper=context.getPropertyVariable(instanceIdName);
    if (instanceIdPropWrapper == null) {
      instanceIdPropWrapper=context.getPropertyVariable(instanceIdName,true);
      if (instanceIdPropWrapper == null) {
        instanceIdPropWrapper=context.getPropertyVariable(instanceIdName,false);
      }
    }
  }
  if (instanceIdPropWrapper == null) {
    Handler.LOG.warn("String_Node_Str");
    return false;
  }
  Variable serverIpPropWrapper=null;
  for (  String vmIpName : PluginUtils.getSupportedVirtualMachineIPPropertyNames()) {
    serverIpPropWrapper=context.getPropertyVariable(vmIpName);
    if (serverIpPropWrapper == null) {
      serverIpPropWrapper=context.getPropertyVariable(vmIpName,true);
      if (serverIpPropWrapper == null) {
        serverIpPropWrapper=context.getPropertyVariable(vmIpName,false);
      }
    }
  }
  if (serverIpPropWrapper == null) {
    Handler.LOG.warn("String_Node_Str");
    return false;
  }
  Variable sshUserVariable=null;
  for (  String userName : PluginUtils.getSupportedVirtualMachineLoginUserNamePropertyNames()) {
    sshUserVariable=context.getPropertyVariable(userName);
    if (sshUserVariable == null) {
      sshUserVariable=context.getPropertyVariable(userName,true);
      if (sshUserVariable == null) {
        sshUserVariable=context.getPropertyVariable(userName,false);
      }
    }
  }
  if (sshUserVariable == null) {
    return false;
  }
 else {
    if (Utils.isVariableValueEmpty(sshUserVariable,context)) {
      sshUserVariable=null;
    }
  }
  Variable sshKeyVariable=null;
  for (  String passwordName : PluginUtils.getSupportedVirtualMachineLoginPasswordPropertyNames()) {
    sshKeyVariable=context.getPropertyVariable(passwordName);
    if (sshKeyVariable == null) {
      sshKeyVariable=context.getPropertyVariable(passwordName,true);
      if (sshKeyVariable == null) {
        sshKeyVariable=context.getPropertyVariable(passwordName,false);
      }
    }
  }
  if (sshKeyVariable == null) {
    return false;
  }
 else {
    if (Utils.isVariableValueEmpty(sshKeyVariable,context)) {
      sshKeyVariable=null;
    }
  }
  if (sshUserVariable == null) {
    LOG.debug("String_Node_Str");
    context.addStringValueToPlanRequest(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMLOGINNAME);
  }
  if (sshKeyVariable == null) {
    LOG.debug("String_Node_Str");
    context.addStringValueToPlanRequest(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMLOGINPASSWORD);
  }
  LOG.debug("String_Node_Str");
  context.addStringValueToPlanRequest("String_Node_Str");
  LOG.debug("String_Node_Str");
  context.addStringValueToPlanRequest("String_Node_Str");
  Map<String,Variable> createEC2InternalExternalPropsInput=new HashMap<String,Variable>();
  for (  String externalParameter : Handler.createVMInstanceExternalInputParams) {
    Variable variable=context.getPropertyVariable(externalParameter);
    if (variable == null) {
      variable=context.getPropertyVariable(externalParameter,true);
      if (variable == null) {
        variable=context.getPropertyVariable(externalParameter,false);
      }
    }
    if (externalParameter.equals("String_Node_Str") && ubuntuAMIIdVar != null) {
      createEC2InternalExternalPropsInput.put(externalParameter,ubuntuAMIIdVar);
      continue;
    }
    if (variable == null) {
      Handler.LOG.warn("String_Node_Str" + externalParameter);
      return false;
    }
 else {
      Handler.LOG.debug("String_Node_Str" + externalParameter);
    }
    if (Utils.isVariableValueEmpty(variable,context)) {
      Handler.LOG.debug("String_Node_Str");
      createEC2InternalExternalPropsInput.put(externalParameter,null);
    }
 else {
      createEC2InternalExternalPropsInput.put(externalParameter,variable);
    }
  }
  Map<String,Variable> createEC2InternalExternalPropsOutput=new HashMap<String,Variable>();
  createEC2InternalExternalPropsOutput.put(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMINSTANCEID,instanceIdPropWrapper);
  createEC2InternalExternalPropsOutput.put(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMIP,serverIpPropWrapper);
  context.addStringValueToPlanRequest("String_Node_Str");
  this.invokerOpPlugin.handle(context,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_CLOUDPROVIDER_CREATEVM,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_CLOUDPROVIDER,"String_Node_Str",createEC2InternalExternalPropsInput,createEC2InternalExternalPropsOutput);
  Map<String,Variable> startRequestInputParams=new HashMap<String,Variable>();
  startRequestInputParams.put("String_Node_Str",serverIpPropWrapper);
  startRequestInputParams.put("String_Node_Str",sshUserVariable);
  startRequestInputParams.put("String_Node_Str",sshKeyVariable);
  this.invokerOpPlugin.handle(context,ubuntuNodeTemplate.getId(),true,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_OPERATINGSYSTEM_WAITFORAVAIL,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_OPERATINGSYSTEM,"String_Node_Str",startRequestInputParams,new HashMap<String,Variable>(),false);
  return true;
}

Fixed version (ground truth):
public boolean handleOpenStackLiberty12WithUbuntu1404(TemplatePlanContext context,AbstractNodeTemplate nodeTemplate){
  AbstractNodeTemplate ubuntuNodeTemplate=this.findUbuntuNode(nodeTemplate);
  Variable ubuntuAMIIdVar=null;
  if (ubuntuNodeTemplate == null) {
    LOG.error("String_Node_Str");
    return false;
  }
  if (this.isUbuntuNodeTypeWithImplicitImage(ubuntuNodeTemplate.getType().getId())) {
    ubuntuAMIIdVar=context.createGlobalStringVariable("String_Node_Str",this.createUbuntuImageStringFromNodeType(ubuntuNodeTemplate.getType().getId()));
  }
  LOG.debug("String_Node_Str" + ubuntuNodeTemplate.getId() + "String_Node_Str"+ ubuntuNodeTemplate.getType().getId().toString());
  Variable instanceIdPropWrapper=null;
  for (  String instanceIdName : PluginUtils.getSupportedVirtualMachineInstanceIdPropertyNames()) {
    instanceIdPropWrapper=context.getPropertyVariable(ubuntuNodeTemplate,instanceIdName);
    if (instanceIdPropWrapper == null) {
      instanceIdPropWrapper=context.getPropertyVariable(instanceIdName,true);
    }
  }
  if (instanceIdPropWrapper == null) {
    Handler.LOG.warn("String_Node_Str");
    return false;
  }
  Variable serverIpPropWrapper=null;
  for (  String vmIpName : PluginUtils.getSupportedVirtualMachineIPPropertyNames()) {
    serverIpPropWrapper=context.getPropertyVariable(ubuntuNodeTemplate,vmIpName);
    if (serverIpPropWrapper == null) {
      serverIpPropWrapper=context.getPropertyVariable(vmIpName,true);
    }
  }
  if (serverIpPropWrapper == null) {
    Handler.LOG.warn("String_Node_Str");
    return false;
  }
  Variable sshUserVariable=null;
  for (  String userName : PluginUtils.getSupportedVirtualMachineLoginUserNamePropertyNames()) {
    sshUserVariable=context.getPropertyVariable(ubuntuNodeTemplate,userName);
    if (sshUserVariable == null) {
      sshUserVariable=context.getPropertyVariable(userName,true);
    }
  }
  if (sshUserVariable == null) {
    return false;
  }
 else {
    if (Utils.isVariableValueEmpty(sshUserVariable,context)) {
      sshUserVariable=null;
    }
  }
  Variable sshKeyVariable=null;
  for (  String passwordName : PluginUtils.getSupportedVirtualMachineLoginPasswordPropertyNames()) {
    sshKeyVariable=context.getPropertyVariable(ubuntuNodeTemplate,passwordName);
    if (sshKeyVariable == null) {
      sshKeyVariable=context.getPropertyVariable(passwordName,true);
    }
  }
  if (sshKeyVariable == null) {
    return false;
  }
 else {
    if (Utils.isVariableValueEmpty(sshKeyVariable,context)) {
      sshKeyVariable=null;
    }
  }
  if (sshUserVariable == null) {
    LOG.debug("String_Node_Str");
    context.addStringValueToPlanRequest(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMLOGINNAME);
  }
  if (sshKeyVariable == null) {
    LOG.debug("String_Node_Str");
    context.addStringValueToPlanRequest(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMLOGINPASSWORD);
  }
  LOG.debug("String_Node_Str");
  context.addStringValueToPlanRequest("String_Node_Str");
  LOG.debug("String_Node_Str");
  context.addStringValueToPlanRequest("String_Node_Str");
  Map<String,Variable> createEC2InternalExternalPropsInput=new HashMap<String,Variable>();
  for (  String externalParameter : Handler.createVMInstanceExternalInputParams) {
    Variable variable=context.getPropertyVariable(ubuntuNodeTemplate,externalParameter);
    if (variable == null) {
      variable=context.getPropertyVariable(externalParameter,true);
    }
    if (externalParameter.equals("String_Node_Str") && ubuntuAMIIdVar != null) {
      createEC2InternalExternalPropsInput.put(externalParameter,ubuntuAMIIdVar);
      continue;
    }
    if (variable == null) {
      Handler.LOG.warn("String_Node_Str" + externalParameter);
      return false;
    }
 else {
      Handler.LOG.debug("String_Node_Str" + externalParameter);
    }
    if (Utils.isVariableValueEmpty(variable,context)) {
      Handler.LOG.debug("String_Node_Str");
      createEC2InternalExternalPropsInput.put(externalParameter,null);
    }
 else {
      createEC2InternalExternalPropsInput.put(externalParameter,variable);
    }
  }
  Map<String,Variable> createEC2InternalExternalPropsOutput=new HashMap<String,Variable>();
  createEC2InternalExternalPropsOutput.put(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMINSTANCEID,instanceIdPropWrapper);
  createEC2InternalExternalPropsOutput.put(Properties.OPENTOSCA_DECLARATIVE_PROPERTYNAME_VMIP,serverIpPropWrapper);
  context.addStringValueToPlanRequest("String_Node_Str");
  this.invokerOpPlugin.handle(context,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_CLOUDPROVIDER_CREATEVM,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_CLOUDPROVIDER,"String_Node_Str",createEC2InternalExternalPropsInput,createEC2InternalExternalPropsOutput);
  Map<String,Variable> startRequestInputParams=new HashMap<String,Variable>();
  startRequestInputParams.put("String_Node_Str",serverIpPropWrapper);
  startRequestInputParams.put("String_Node_Str",sshUserVariable);
  startRequestInputParams.put("String_Node_Str",sshKeyVariable);
  this.invokerOpPlugin.handle(context,ubuntuNodeTemplate.getId(),true,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_OPERATINGSYSTEM_WAITFORAVAIL,Interfaces.OPENTOSCA_DECLARATIVE_INTERFACE_OPERATINGSYSTEM,"String_Node_Str",startRequestInputParams,new HashMap<String,Variable>(),false);
  return true;
}