Program: 35494
Project: 35494
Buggy source:
public List<ContactDuplicatedProperty> extractProperties(Contact newContact,Contact oldContact,Language language){
  if (!Objects.equals(newContact.getContactModel().getId(),oldContact.getContactModel().getId())) {
    throw new IllegalStateException("String_Node_Str" + newContact.getContactModel().getId() + "String_Node_Str"+ oldContact.getContactModel().getId());
  }
  List<ContactDuplicatedProperty> properties=new ArrayList<>();
  for (  LayoutGroup group : newContact.getContactModel().getDetails().getLayout().getGroups()) {
    for (    LayoutConstraint layoutConstraint : group.getConstraints()) {
      FlexibleElement element=layoutConstraint.getElement();
      String serializedNewValue;
      String serializedOldValue;
      String formattedNewValue;
      String formattedOldValue;
      ContactDuplicatedProperty.ValueType valueType=ContactDuplicatedProperty.ValueType.STRING;
      if (element instanceof DefaultContactFlexibleElement) {
        DefaultContactFlexibleElement defaultContactFlexibleElement=(DefaultContactFlexibleElement)element;
        serializedNewValue=defaultContactFlexibleElement.getSerializedValue(newContact);
        serializedOldValue=defaultContactFlexibleElement.getSerializedValue(oldContact);
        formattedNewValue=defaultContactFlexibleElement.getFormattedValue(newContact);
        formattedOldValue=defaultContactFlexibleElement.getFormattedValue(oldContact);
        if (((DefaultContactFlexibleElement)element).getType() == DefaultContactFlexibleElementType.PHOTO) {
          valueType=ContactDuplicatedProperty.ValueType.IMAGE;
        }
      }
 else {
        Value newValue=valueDAO.getValueByElementAndContainer(element.getId(),newContact.getId());
        Value oldValue=valueDAO.getValueByElementAndContainer(element.getId(),oldContact.getId());
        serializedNewValue=newValue.getValue();
        serializedOldValue=oldValue.getValue();
        formattedNewValue=modelPropertyService.getFormattedValue(element,newValue.getValue(),language);
        formattedOldValue=modelPropertyService.getFormattedValue(element,oldValue.getValue(),language);
      }
      if ("String_Node_Str".equals(serializedOldValue)) {
        serializedOldValue=null;
      }
      if ("String_Node_Str".equals(serializedNewValue)) {
        serializedNewValue=null;
      }
      if (Objects.equals(serializedNewValue,serializedOldValue)) {
        continue;
      }
      String propertyLabel=element.getLabel();
      if (propertyLabel == null && element instanceof DefaultContactFlexibleElement) {
        propertyLabel=modelPropertyService.getDefaultContactPropertyLabel(((DefaultContactFlexibleElement)element).getType(),language);
      }
      ContactDuplicatedProperty contactDuplicatedProperty=new ContactDuplicatedProperty();
      contactDuplicatedProperty.setPropertyLabel(propertyLabel);
      contactDuplicatedProperty.setSerializedNewValue(serializedNewValue);
      contactDuplicatedProperty.setSerializedOldValue(serializedOldValue);
      contactDuplicatedProperty.setFormattedNewValue(formattedNewValue);
      contactDuplicatedProperty.setFormattedOldValue(formattedOldValue);
      contactDuplicatedProperty.setFlexibleElementId(element.getId());
      contactDuplicatedProperty.setValueType(valueType);
      properties.add(contactDuplicatedProperty);
    }
  }
  return properties;
}

Fixed version (ground truth):
public List<ContactDuplicatedProperty> extractProperties(Contact newContact,Contact oldContact,Language language){
  if (!Objects.equals(newContact.getContactModel().getId(),oldContact.getContactModel().getId())) {
    throw new IllegalStateException("String_Node_Str" + newContact.getContactModel().getId() + "String_Node_Str"+ oldContact.getContactModel().getId());
  }
  List<ContactDuplicatedProperty> properties=new ArrayList<>();
  for (  LayoutGroup group : newContact.getContactModel().getDetails().getLayout().getGroups()) {
    if (group.getHasIterations()) {
      continue;
    }
    for (    LayoutConstraint layoutConstraint : group.getConstraints()) {
      FlexibleElement element=layoutConstraint.getElement();
      String serializedNewValue;
      String serializedOldValue;
      String formattedNewValue;
      String formattedOldValue;
      ContactDuplicatedProperty.ValueType valueType=ContactDuplicatedProperty.ValueType.STRING;
      if (element instanceof DefaultContactFlexibleElement) {
        DefaultContactFlexibleElement defaultContactFlexibleElement=(DefaultContactFlexibleElement)element;
        serializedNewValue=defaultContactFlexibleElement.getSerializedValue(newContact);
        serializedOldValue=defaultContactFlexibleElement.getSerializedValue(oldContact);
        formattedNewValue=defaultContactFlexibleElement.getFormattedValue(newContact);
        formattedOldValue=defaultContactFlexibleElement.getFormattedValue(oldContact);
        if (((DefaultContactFlexibleElement)element).getType() == DefaultContactFlexibleElementType.PHOTO) {
          valueType=ContactDuplicatedProperty.ValueType.IMAGE;
        }
      }
 else {
        Value newValue=valueDAO.getValueByElementAndContainer(element.getId(),newContact.getId());
        Value oldValue=valueDAO.getValueByElementAndContainer(element.getId(),oldContact.getId());
        serializedNewValue=newValue.getValue();
        serializedOldValue=oldValue.getValue();
        formattedNewValue=modelPropertyService.getFormattedValue(element,newValue.getValue(),language);
        formattedOldValue=modelPropertyService.getFormattedValue(element,oldValue.getValue(),language);
      }
      if ("String_Node_Str".equals(serializedOldValue)) {
        serializedOldValue=null;
      }
      if ("String_Node_Str".equals(serializedNewValue)) {
        serializedNewValue=null;
      }
      if (Objects.equals(serializedNewValue,serializedOldValue)) {
        continue;
      }
      String propertyLabel=element.getLabel();
      if (propertyLabel == null && element instanceof DefaultContactFlexibleElement) {
        propertyLabel=modelPropertyService.getDefaultContactPropertyLabel(((DefaultContactFlexibleElement)element).getType(),language);
      }
      ContactDuplicatedProperty contactDuplicatedProperty=new ContactDuplicatedProperty();
      contactDuplicatedProperty.setPropertyLabel(propertyLabel);
      contactDuplicatedProperty.setSerializedNewValue(serializedNewValue);
      contactDuplicatedProperty.setSerializedOldValue(serializedOldValue);
      contactDuplicatedProperty.setFormattedNewValue(formattedNewValue);
      contactDuplicatedProperty.setFormattedOldValue(formattedOldValue);
      contactDuplicatedProperty.setFlexibleElementId(element.getId());
      contactDuplicatedProperty.setValueType(valueType);
      properties.add(contactDuplicatedProperty);
    }
  }
  return properties;
}