code: @Override
  	protected boolean doHandleRequest(final Request request) {
  		FileItemWrap value = getRequestValue(request);
  		FileItemWrap current = getValue();
  
  		boolean changed = value != null || current != null;
  
  		if (changed) {
  			// Reset validation fields
  			resetValidationState();
  			// if User Model exists it will be returned, othewise Shared Model is returned
  			final FileWidgetModel sharedModel = getComponentModel();
  			// if fileType is supplied then validate it
  			if (hasFileTypes()) {
  				boolean validFileType = FileUtil.validateFileType(value, getFileTypes());
  				// If invalid only then update 
  				if (sharedModel.validFileType != validFileType) {
  					// if User Model exists it will be returned, othewise it will be created
  					final FileWidgetModel userModel = getOrCreateComponentModel();
  					userModel.validFileType = validFileType;
  				}
  			}
  
  			// if fileSize is supplied then validate it
  			if (hasMaxFileSize()) {
  				boolean validFileSize = FileUtil.validateFileSize(value, getMaxFileSize());
  				// If invalid only then update
  				if (sharedModel.validFileSize != validFileSize) {
  					// if User Model exists it will be returned, othewise it will be created
  					final FileWidgetModel userModel = getOrCreateComponentModel();
  					userModel.validFileSize = validFileSize;
  				}
  			}
  
  			// if file is valid, the update data
  			if (isFileSizeValid() && isFileTypeValid()) {
  				setData(value);
  			} else if (current == null) {
  				// otherwise no change
  				changed = false;
  			} else {
  				changed = true;
  				setData(null);
  			}
  		}
  
  		return changed;
  	}
docs: {@inheritDoc}