Mensagens de validações do JSF com PrimeFaces

Bom galera, estou com seguinte problema. Estou com método que faz uma consulta no Banco, informo duas datas e informo nome de um funcionario no combobox:

O Problema é o Seguinte:

1 - Quando eu não informo as datas e peço para consultar, ele me traz logo todas as mensagens.

2 - Quando eu informo as datas, ele traz uma mensagem: Consulta Realizada com sucesso, Até aí tudo bem. Só que essa consulta não tem nenhuma informação no meu DataTable, aí se eu clicar mais uma vez no Consultar ele aparece a mensagem informando que não possui Registros . Se eu Alterar a data para visualizar um Registro Ele continua aparecendo as 2 Mensagem ao mesmo Tempo.

Meu Método
`

public List<Servico> filtrarSevico() throws RegraNegocioException {

	if(dataInicio == null && dataFim ==  null || dataFim == null || dataFim == null){
		MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_ERROR, "Campo data está vazio");
	}
	if(listServico.isEmpty()){
			MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_WARN, "Não possui registros!");
	}
	if(listServico.size() >=0){
		MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_INFO, "Consulta realizada com sucesso!");
		listServico = gestaoServicos.filtrarServico(dataInicio, dataFim, funcionario);
	}
	return null;
}

`

Print

Oi! Acho que esse link aqui pode te ajudar a fazer essa parada funcionar direitinho, senão acho que vc deve dar uma olhada na ordem que as coisas estão executando no fluxo de execução de coisas do JSG

link não funciona :sweat:

Foi mal, o link tava errado… segue http://annacruz.github.io/java/jsf/programação/validação/2013/08/26/validacao-de-mais-de-um-campo-usando-jsf-e-primefaces.html