Program: 101392
Project: 101392
Buggy source:
private void createEditorArea(){
  Panel editorArea=new Panel();
  GridLayout grid=new GridLayout(2,2);
  grid.setSizeFull();
  grid.setSpacing(true);
  keyLabel=new TextField();
  keyLabel.setValue("String_Node_Str");
  keyLabel.setWriteThrough(true);
  keyLabel.setImmediate(true);
  keyLabel.addListener((TextChangeListener)this);
  grid.addComponent(keyLabel,0,0,0,0);
  grid.setColumnExpandRatio(0,0.0f);
  grid.setColumnExpandRatio(1,0.0f);
  grid.setRowExpandRatio(0,0);
  grid.setRowExpandRatio(1,0);
  orignalComment=new TextArea();
  orignalComment.setWidth(100,TextArea.UNITS_PERCENTAGE);
  orignalComment.setRows(3);
  orignalComment.setNullRepresentation("String_Node_Str");
  orignalComment.setInputPrompt("String_Node_Str");
  orignalComment.addListener((TextChangeListener)this);
  orignalComment.setWriteThrough(true);
  orignalComment.setImmediate(true);
  grid.addComponent(orignalComment,0,1,0,1);
  orignal=new TextArea();
  orignal.setRows(5);
  orignal.setWidth(100,TextArea.UNITS_PERCENTAGE);
  orignal.setInputPrompt("String_Node_Str");
  orignal.addListener((TextChangeListener)this);
  orignal.setImmediate(true);
  orignal.setWriteThrough(true);
  orignal.setNullRepresentation("String_Node_Str");
  grid.addComponent(orignal,1,0,1,1);
  safeButton=new Button();
  safeButton.setEnabled(false);
  safeButton.setCaption("String_Node_Str");
  safeButton.addListener(new ClickListener(){
    @Override public void buttonClick(    ClickEvent event){
      PropertyPersistenceService propertyPersistence=MainDashboard.getCurrent().getPropertyPersistence();
      propertyPersistence.saveProperties(descriptor,source);
      final int filledKeys=getFilledKeys(source);
      try {
        descriptor=TransactionUtil.commit(descriptor,new Modification<PropertyFileDescriptor,PropertyFileDescriptor>(){
          @Override public PropertyFileDescriptor apply(          PropertyFileDescriptor object){
            object.setKeys(filledKeys);
            object.updatePercentComplete();
            return object;
          }
        }
);
        setDirty(false);
        layout.getWindow().showNotification("String_Node_Str",descriptor.getLocation().lastSegment());
      }
 catch (      CommitException e) {
        e.printStackTrace();
      }
    }
  }
);
  editorArea.setContent(grid);
  layout.addComponent(editorArea);
  layout.setExpandRatio(editorArea,0);
  layout.addComponent(safeButton);
  layout.setExpandRatio(safeButton,0);
}

Fixed version (ground truth):
private void createEditorArea(){
  Panel editorArea=new Panel();
  GridLayout grid=new GridLayout(2,2);
  grid.setSizeFull();
  grid.setSpacing(true);
  keyLabel=new TextField();
  keyLabel.setValue("String_Node_Str");
  keyLabel.setWriteThrough(true);
  keyLabel.setImmediate(true);
  keyLabel.addListener((TextChangeListener)this);
  grid.addComponent(keyLabel,0,0,0,0);
  grid.setColumnExpandRatio(0,0.0f);
  grid.setColumnExpandRatio(1,0.0f);
  grid.setRowExpandRatio(0,0);
  grid.setRowExpandRatio(1,0);
  orignalComment=new TextArea();
  orignalComment.setWidth(100,TextArea.UNITS_PERCENTAGE);
  orignalComment.setRows(3);
  orignalComment.setNullRepresentation("String_Node_Str");
  orignalComment.setInputPrompt("String_Node_Str");
  orignalComment.addListener((TextChangeListener)this);
  orignalComment.setWriteThrough(true);
  orignalComment.setImmediate(true);
  grid.addComponent(orignalComment,0,1,0,1);
  orignal=new TextArea();
  orignal.setRows(5);
  orignal.setWidth(100,TextArea.UNITS_PERCENTAGE);
  orignal.setInputPrompt("String_Node_Str");
  orignal.addListener((TextChangeListener)this);
  orignal.setImmediate(true);
  orignal.setWriteThrough(true);
  orignal.setNullRepresentation("String_Node_Str");
  grid.addComponent(orignal,1,0,1,1);
  safeButton=new Button();
  safeButton.setEnabled(false);
  safeButton.setCaption("String_Node_Str");
  safeButton.addListener(new ClickListener(){
    @Override public void buttonClick(    ClickEvent event){
      final int filledKeys=getFilledKeys(source);
      try {
        descriptor=TransactionUtil.commit(descriptor,new Modification<PropertyFileDescriptor,PropertyFileDescriptor>(){
          @Override public PropertyFileDescriptor apply(          PropertyFileDescriptor object){
            object.setKeys(filledKeys);
            object.updatePercentComplete();
            return object;
          }
        }
);
        PropertyPersistenceService propertyPersistence=MainDashboard.getCurrent().getPropertyPersistence();
        propertyPersistence.saveProperties(descriptor,source);
        setDirty(false);
        layout.getWindow().showNotification("String_Node_Str",descriptor.getLocation().lastSegment());
      }
 catch (      CommitException e) {
        e.printStackTrace();
      }
    }
  }
);
  editorArea.setContent(grid);
  layout.addComponent(editorArea);
  layout.setExpandRatio(editorArea,0);
  layout.addComponent(safeButton);
  layout.setExpandRatio(safeButton,0);
}