Program: 188592
Project: 188592
Buggy source:
private static void addTextField(FlowPanel panel,final FlowPanel layout,final MetadataValue mv,final boolean mandatory){
  Label mvLabel=new Label(getFieldLabel(mv));
  mvLabel.addStyleName("String_Node_Str");
  if (mandatory) {
    mvLabel.addStyleName("String_Node_Str");
  }
  final TextBox mvText=new TextBox();
  mvText.addStyleName("String_Node_Str");
  if (mv.get("String_Node_Str") != null) {
    mvText.setText(mv.get("String_Node_Str"));
  }
  mvText.addChangeHandler(new ChangeHandler(){
    @Override public void onChange(    ChangeEvent changeEvent){
      mv.set("String_Node_Str",mvText.getValue());
      if (mandatory && (mvText.getValue() != null && !mvText.getValue().trim().equalsIgnoreCase("String_Node_Str"))) {
        mvText.removeStyleName("String_Node_Str");
      }
 else       if (mandatory && (mvText.getValue() == null || mvText.getValue().trim().equalsIgnoreCase("String_Node_Str"))) {
        mvText.addStyleName("String_Node_Str");
      }
    }
  }
);
  layout.add(mvLabel);
  layout.add(mvText);
  String description=mv.get("String_Node_Str");
  if (description != null && description.length() > 0) {
    Label mvDescription=new Label(description);
    mvDescription.addStyleName("String_Node_Str");
    layout.add(mvDescription);
  }
  if (mv.get("String_Node_Str") != null && !mv.get("String_Node_Str").trim().equalsIgnoreCase("String_Node_Str")) {
    Label errorLabel=new Label(mv.get("String_Node_Str"));
    errorLabel.addStyleName("String_Node_Str");
    layout.add(errorLabel);
    mvText.addStyleName("String_Node_Str");
  }
  panel.add(layout);
}

Fixed version (ground truth):
private static void addTextField(FlowPanel panel,final FlowPanel layout,final MetadataValue mv,final boolean mandatory){
  Label mvLabel=new Label(getFieldLabel(mv));
  mvLabel.addStyleName("String_Node_Str");
  if (mandatory) {
    mvLabel.addStyleName("String_Node_Str");
  }
  final TextBox mvText=new TextBox();
  mvText.addStyleName("String_Node_Str");
  if (mv.get("String_Node_Str") != null) {
    mvText.setText(mv.get("String_Node_Str"));
  }
  mvText.addChangeHandler(new ChangeHandler(){
    @Override public void onChange(    ChangeEvent changeEvent){
      mv.set("String_Node_Str",mvText.getValue());
      if (mandatory && (mvText.getValue() != null && !mvText.getValue().trim().equalsIgnoreCase("String_Node_Str"))) {
        mvText.removeStyleName("String_Node_Str");
      }
 else       if (mandatory && (mvText.getValue() == null || mvText.getValue().trim().equalsIgnoreCase("String_Node_Str"))) {
        mvText.addStyleName("String_Node_Str");
      }
    }
  }
);
  layout.add(mvLabel);
  layout.add(mvText);
  String description=mv.get("String_Node_Str");
  if (description != null && description.length() > 0) {
    Label mvDescription=new Label(description);
    mvDescription.addStyleName("String_Node_Str");
    layout.add(mvDescription);
  }
  if (mv.get("String_Node_Str") != null && !mv.get("String_Node_Str").trim().equalsIgnoreCase("String_Node_Str")) {
    if (mv.get("String_Node_Str").equalsIgnoreCase("String_Node_Str")) {
      GWT.log("String_Node_Str");
    }
    Label errorLabel=new Label(mv.get("String_Node_Str"));
    errorLabel.addStyleName("String_Node_Str");
    layout.add(errorLabel);
    mvText.addStyleName("String_Node_Str");
  }
 else {
    if (mv.get("String_Node_Str").equalsIgnoreCase("String_Node_Str")) {
      GWT.log("String_Node_Str");
    }
  }
  panel.add(layout);
}