Program: 118404
Project: 118404
Buggy source:
private void updateProperty(Object newValue){
  if (getSubProperties() == null) {
    return;
  }
  NamedThing widgetProperty=widget.getContent();
  if (widgetProperty instanceof SchemaProperty) {
    if (newValue instanceof String) {
      ((SchemaProperty)widgetProperty).setValue(new Schema.Parser().parse((String)newValue));
    }
 else     if (newValue instanceof Schema) {
      ((SchemaProperty)widgetProperty).setValue(((Schema)newValue));
    }
  }
 else   if (widgetProperty instanceof Property) {
    Property se=(Property<?>)widgetProperty;
    Object oldValue=se.getValue();
    Object value=newValue;
    List<?> propertyPossibleValues=((Property<?>)widgetProperty).getPossibleValues();
    if (propertyPossibleValues != null) {
      for (      Object possibleValue : propertyPossibleValues) {
        if (possibleValue.toString().equals(newValue)) {
          value=possibleValue;
          break;
        }
      }
    }
    if (value != null && !value.equals(oldValue)) {
      se=(Property<?>)getSubProperties().getProperty(se.getName());
      if (isDrivedByForm()) {
        form.setValue(se.getName(),value);
      }
 else {
        se.setValue(value);
      }
      fireConnectionPropertyChangedEvent(newValue);
    }
  }
 else   if (widgetProperty instanceof PresentationItem) {
    PresentationItem pi=(PresentationItem)widgetProperty;
    Form formtoShow=pi.getFormtoShow();
    if (formtoShow != null) {
      fireShowDialogEvent(getSubProperties().getForm(formtoShow.getName()));
    }
  }
 else   if (widgetProperty instanceof ComponentProperties && WidgetType.TABLE.equals(widget.getWidgetType())) {
    GenericTableUtils.setTableValues((ComponentProperties)widgetProperty,(List<Map<String,Object>>)newValue,this);
  }
}

Fixed version (ground truth):
private void updateProperty(Object newValue){
  if (getSubProperties() == null) {
    return;
  }
  NamedThing widgetProperty=widget.getContent();
  if (widgetProperty instanceof SchemaProperty) {
    if (newValue instanceof String) {
      ((SchemaProperty)widgetProperty).setValue(new Schema.Parser().parse((String)newValue));
    }
 else     if (newValue instanceof Schema) {
      ((SchemaProperty)widgetProperty).setValue(((Schema)newValue));
    }
  }
 else   if (widgetProperty instanceof Property) {
    Property se=(Property<?>)widgetProperty;
    Object oldValue=se.getValue();
    Object value=newValue;
    List<?> propertyPossibleValues=((Property<?>)widgetProperty).getPossibleValues();
    if (propertyPossibleValues != null) {
      for (      Object possibleValue : propertyPossibleValues) {
        if (possibleValue.toString().equals(newValue)) {
          value=possibleValue;
          break;
        }
      }
    }
    if (value != null && !value.equals(oldValue)) {
      se=(Property<?>)getSubProperties().getProperty(se.getName());
      if (isDrivedByForm()) {
        form.setValue(se.getName(),value);
      }
 else {
        se.setStoredValue(value);
      }
      fireConnectionPropertyChangedEvent(newValue);
    }
  }
 else   if (widgetProperty instanceof PresentationItem) {
    PresentationItem pi=(PresentationItem)widgetProperty;
    Form formtoShow=pi.getFormtoShow();
    if (formtoShow != null) {
      fireShowDialogEvent(getSubProperties().getForm(formtoShow.getName()));
    }
  }
 else   if (widgetProperty instanceof ComponentProperties && WidgetType.TABLE.equals(widget.getWidgetType())) {
    GenericTableUtils.setTableValues((ComponentProperties)widgetProperty,(List<Map<String,Object>>)newValue,this);
  }
}