Form Buffer Issue

I’m currently having an issue with clearing the buffer of the Form object using the form.discard() method.

I am clearing the form using a button:

The odd part is that the popupdatefield discards the changes in the buffer correctly. The TextField, and TextArea do not clear. If I do press the Discard Changes button, and then refresh the page, the changes are discarded. I tested refreshing without discarding, the the changes stayed until committed.

Anyone have any solutions to this?

 
                form.setVisibleItemProperties(VISABLE_ITEM_PROPERTIES);
		form.setWidth("350px");
		form.setHeight("350px");
		form.setValidationVisibleOnCommit(true);
		form.setCaption("Work Experience");
		form.setInvalidCommitted(false);
		form.setWriteThrough(false);
		form.setItemDataSource(workExperienceBean);

		Button discardChanges = new Button("Discard changes",form,"discard");
public WorkExperienceForm(BeanItem<WorkExperience> workExperienceBean){
		super();
		setFormFieldFactory(new FormFieldFactory() {
		
			/**
			 * 
			 */
			private static final long serialVersionUID = -1787963141542054867L;

			public Field createField(Item item, Object propertyId, Component uiContext) {
				
				if("companyName".equals(propertyId))
				{
			    	TextField textField = new TextField("Company Name");
			    	textField.setRequired(true);
			    	textField.addValidator(new StringLengthValidator(
			    			"Company Name length must be < 200 characters."
			    			, 1
			    			, 200
			    			, false));
			    	textField.setNullRepresentation("");
			    	return textField;
				}
				else if("position".equals(propertyId))
				{
					TextField textField = new TextField("Position");
					textField.setRequired(true);
					textField.addValidator(new StringLengthValidator(
			    			"Position length must be < 200 characters."
			    			, 1
			    			, 200
			    			, false));
					textField.setNullRepresentation("");
					return textField;
				}
				else if("description".equals(propertyId))
				{
					TextArea textArea = new TextArea("Description");
					textArea.addValidator(new StringLengthValidator(
			    			"Description length must be < 500 characters."
			    			, 1
			    			, 500
			    			, false));
					textArea.setNullRepresentation("");
					return textArea;
				}
				else if( "startDate".equals(propertyId))
				{
					DateField popupDateField = new PopupDateField("Start Date");
					popupDateField.setDateFormat("MM/dd/yyyy");
					return popupDateField;
				}
				else if( "endDate".equals(propertyId))
				{
					DateField popupDateField = new PopupDateField("End Date");
					popupDateField.setDateFormat("MM/dd/yyyy");
					return popupDateField;
				}
				return null; //Invalid field (property) name.
			}
		});