Program: 88643
Project: 88643
Buggy source:
private Map<String,Object> valueSpecDiff(ValueSpecification vs,JSONObject firstObject){
  Map<String,Object> result=new HashMap<String,Object>();
  PropertyValueType valueType=PropertyValueType.valueOf((String)firstObject.get("String_Node_Str"));
  String message="String_Node_Str";
  String typeMismatchMessage="String_Node_Str";
  String modelString=null;
  String webString=null;
  boolean stringMatch=false;
  if (valueType == PropertyValueType.LiteralString) {
    if (vs instanceof LiteralString) {
      modelString=ExportUtility.cleanHtml(((LiteralString)vs).getValue());
      webString=ExportUtility.cleanHtml((String)firstObject.get("String_Node_Str"));
      firstObject.put("String_Node_Str",webString);
      if (!modelString.equals(webString)) {
        stringMatch=true;
        message="String_Node_Str" + truncate(modelString) + "String_Node_Str"+ truncate(webString);
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralBoolean) {
    if (vs instanceof LiteralBoolean) {
      if ((Boolean)firstObject.get("String_Node_Str") != ((LiteralBoolean)vs).isValue()) {
        message="String_Node_Str" + ((LiteralBoolean)vs).isValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralInteger) {
    if (vs instanceof LiteralInteger) {
      if (((LiteralInteger)vs).getValue() != (Long)firstObject.get("String_Node_Str")) {
        message="String_Node_Str" + ((LiteralInteger)vs).getValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralUnlimitedNatural) {
    if (vs instanceof LiteralUnlimitedNatural) {
      if (((LiteralUnlimitedNatural)vs).getValue() != (Long)firstObject.get("String_Node_Str")) {
        message="String_Node_Str" + ((LiteralUnlimitedNatural)vs).getValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralReal) {
    if (vs instanceof LiteralReal) {
      Double webValue=null;
      if (firstObject.get("String_Node_Str") instanceof Long)       webValue=Double.parseDouble(((Long)firstObject.get("String_Node_Str")).toString());
 else       webValue=(Double)firstObject.get("String_Node_Str");
      if (((LiteralReal)vs).getValue() != webValue) {
        message="String_Node_Str" + ((LiteralReal)vs).getValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.ElementValue) {
    if (vs instanceof ElementValue) {
      if (((ElementValue)vs).getElement() == null || !ExportUtility.getElementID(((ElementValue)vs).getElement()).equals(firstObject.get("String_Node_Str"))) {
        message="String_Node_Str" + ((ElementValue)vs).getElement() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.InstanceValue) {
    if (vs instanceof InstanceValue) {
      if (((InstanceValue)vs).getInstance() == null || !ExportUtility.getElementID(((InstanceValue)vs).getInstance()).equals(firstObject.get("String_Node_Str"))) {
        message="String_Node_Str" + ((InstanceValue)vs).getInstance() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.Expression) {
    if (vs instanceof Expression) {
      JSONObject model=ExportUtility.fillValueSpecification(vs,null);
      if (!model.equals(firstObject))       message="String_Node_Str";
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else {
  }
  result.put("String_Node_Str",message);
  result.put("String_Node_Str",webString);
  result.put("String_Node_Str",modelString);
  result.put("String_Node_Str",stringMatch);
  return result;
}

Fixed version (ground truth):
private Map<String,Object> valueSpecDiff(ValueSpecification vs,JSONObject firstObject){
  Map<String,Object> result=new HashMap<String,Object>();
  PropertyValueType valueType=PropertyValueType.valueOf((String)firstObject.get("String_Node_Str"));
  String message="String_Node_Str";
  String typeMismatchMessage="String_Node_Str";
  String modelString=null;
  String webString=null;
  boolean stringMatch=false;
  if (valueType == PropertyValueType.LiteralString) {
    if (vs instanceof LiteralString) {
      modelString=ExportUtility.cleanHtml(((LiteralString)vs).getValue());
      webString=ExportUtility.cleanHtml((String)firstObject.get("String_Node_Str"));
      firstObject.put("String_Node_Str",webString);
      if (!modelString.equals(webString)) {
        stringMatch=true;
        message="String_Node_Str" + truncate(modelString) + "String_Node_Str"+ truncate(webString);
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralBoolean) {
    if (vs instanceof LiteralBoolean) {
      if ((Boolean)firstObject.get("String_Node_Str") != ((LiteralBoolean)vs).isValue()) {
        message="String_Node_Str" + ((LiteralBoolean)vs).isValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralInteger) {
    if (vs instanceof LiteralInteger) {
      if (((LiteralInteger)vs).getValue() != (Long)firstObject.get("String_Node_Str")) {
        message="String_Node_Str" + ((LiteralInteger)vs).getValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralUnlimitedNatural) {
    if (vs instanceof LiteralUnlimitedNatural) {
      if (((LiteralUnlimitedNatural)vs).getValue() != (Long)firstObject.get("String_Node_Str")) {
        message="String_Node_Str" + ((LiteralUnlimitedNatural)vs).getValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.LiteralReal) {
    if (vs instanceof LiteralReal) {
      Double webValue=null;
      if (firstObject.get("String_Node_Str") instanceof Long)       webValue=Double.parseDouble(((Long)firstObject.get("String_Node_Str")).toString());
 else       webValue=(Double)firstObject.get("String_Node_Str");
      if (((LiteralReal)vs).getValue() != webValue) {
        message="String_Node_Str" + ((LiteralReal)vs).getValue() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.ElementValue) {
    if (vs instanceof ElementValue) {
      if (((ElementValue)vs).getElement() == null || !ExportUtility.getElementID(((ElementValue)vs).getElement()).equals(firstObject.get("String_Node_Str"))) {
        message="String_Node_Str" + ((ElementValue)vs).getElement().getHumanName() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.InstanceValue) {
    if (vs instanceof InstanceValue) {
      if (((InstanceValue)vs).getInstance() == null || !ExportUtility.getElementID(((InstanceValue)vs).getInstance()).equals(firstObject.get("String_Node_Str"))) {
        message="String_Node_Str" + ((InstanceValue)vs).getInstance().getHumanName() + "String_Node_Str"+ firstObject.get("String_Node_Str");
      }
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else   if (valueType == PropertyValueType.Expression) {
    if (vs instanceof Expression) {
      JSONObject model=ExportUtility.fillValueSpecification(vs,null);
      if (!model.equals(firstObject))       message="String_Node_Str";
    }
 else {
      message=typeMismatchMessage;
    }
  }
 else {
  }
  result.put("String_Node_Str",message);
  result.put("String_Node_Str",webString);
  result.put("String_Node_Str",modelString);
  result.put("String_Node_Str",stringMatch);
  return result;
}