JSF - h:messages - Não funciona da primeira vez em que a página é acessada

Fala galera do GUJ!

   Esse é o meu primerio post aqui no GUJ, por isso se eu infringir alguma regra, por favor me avisem... :)

   Peço a ajudas de vocês para um problema que eu já pesquisei muito e não achei resposta.

   A minha página exibe uma lista, lista esta que é obtida do meu managedBean. Vou chamar esta lista de "objects". Acontece que está lista e obtida da base de dados através do hibernate toda vez que é executado o método "getObjects".
   Então, eu quis fazer um teste, queria saber se, caso houvesse uma excessão ao buscar esta lista, eu conseguiria exibir uma mensagem na página para o usuário. Então eu não iniciei o banco, justamente para estourar a exceção. Ocorre que eu consigo capturar a exceção através do try catch e crio uma mensagem no JSF através do "FacesContext.getCurrentInstance().addMessage", mas essa mensagem não é exibida na página. A lista aparece em branco, mas a mensagem do "h:messages" não aparece. Curioso que eu tenho um outro método que salva na base um item desta lista, e implementei o mesmo esquema do método "getObjects" e a mensagem aparece com sucesso na página.
  O que me ocorre é que o problema se dá porque a exceção acontece durante o carremento da página, e não depois de uma ação, como no caso do click do botão save.
   
  Para facilitar o entendimento, vou colocar o código. O que eu chamei de "objects" antes, é a propriedade "brokers" aqui. Primeiro da página:
    <rich:messages id="globalMessages" ajaxRendered="true" globalOnly="true">
	    <f:facet name="errorMarker">
	        <h:graphicImage value="/img/error.gif"/>  
	    </f:facet>	    
    </rich:messages>

			<rich:dataTable value="#{brokerBean.brokers}" var="broker" id="brokerList" rowClasses="odd-row,even-row" cellpadding="0" cellspacing="0" >
				<f:facet name="header">
					<rich:columnGroup>
						<h:column>
							<h:outputLabel value="Nome"/>
						</h:column>
						<h:column>
							<h:outputLabel value="Fracionário"/>
						</h:column>
						<h:column>
							<h:outputLabel value="Lote"/>
						</h:column>
						<h:column></h:column>
						<h:column></h:column>					
					</rich:columnGroup>
				</f:facet>		
				<rich:column>
					<h:outputText value="#{broker.name}" />
				</rich:column>			
				<rich:column>
					<h:outputText value="#{broker.fractionPrice}" />
				</rich:column>			
				<rich:column>
					<h:outputText value="#{broker.lotPrice}" />
				</rich:column>		
				<h:column>
					<a4j:commandLink value="alterar" action="#{brokerBean.prepareEdit}" reRender="broker">
						<f:setPropertyActionListener value="#{broker}" target="#{brokerBean.currentBroker}"/>						
					</a4j:commandLink> 
				</h:column>
				<h:column>
					<a4j:commandLink value="excluir" reRender="brokerList">
					</a4j:commandLink> 			
				</h:column>
			</rich:dataTable>

 Agora do Bean:

	public List<Broker> getBrokers() {					
		
		try {
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			session.beginTransaction();		
			BrokerDAO brokerDao = DAOFactory.getInstance().getBrokerDAO();		
			this.brokers = brokerDao.findAll();
		} catch (RuntimeException e) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro ao obter lista de corretoras."));
			System.out.println("getBrokers->Erro ao listar as corretoras.");
		
			//e.printStackTrace();
		}
		return this.brokers; 				
	}


	public void save() throws Exception {
		System.out.println("BrokerBean.save()");				
			
		try {
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			session.beginTransaction();
			
			BrokerDAO brokerDao = DAOFactory.getInstance().getBrokerDAO();				
			brokerDao.save(currentBroker);
				
			session.getTransaction().commit();
		} catch (RuntimeException e) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro ao persistir a Corretora."));
			System.out.println("getBrokers->Erro ao persistir a Corretora.");
			//e.printStackTrace();
		}
		
		currentBroker = new Broker();
		this.state = ScreenState.LIST;
}


Agradeço a quem puder ajudar!

Outra coisa: Escrevi o nome do usuário errado... como faço pra consertar isso?

um abraço!