Tenho a seguinte janela de conexao:

E a seguinte HibernateHelpper.
package sdp2000.persistencia;
/*
* HibernateUtil.java
*
* Created on 22 de Abril de 2007, 16:03 by Rogerio M.Q.
*
* Classe de Infra-Estrutura
*/
import java.sql.SQLException;
import org.hibernate.cfg.*;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.StatelessSession;
import sdp2000.SdpConexao;
public class HibernateUtil
{
private static SessionFactory sessionFactory=null;
private static StatelessSession statelessSession = null;
//Criando uma threadLocal garantindo que seja reutilizada a sessao aberta, caso ja exista;
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
static
{
//Pegando as informaçoes das propriedades de conexao com a base de dados do software...
private static String usuario = SdpConexao.sdpProps.getProperties().getProperty("db.usuario");
private static String senha = SdpConexao.sdpProps.getProperties().getProperty("db.senha");
private static String dbUrl = SdpConexao.sdpProps.getProperties().getProperty("db.url");
try
{
sessionFactory = new AnnotationConfiguration().configure("sdp2000/hibernate.cfg.xml").
setProperty("hibernate.connection.username", usuario).
setProperty("hibernate.connection.password", senha).
setProperty("hibernate.connection.url", dbUrl).buildSessionFactory();
}
catch(Exception ex)
{
System.err.println("Initial SessionFactory creation failed. \n" + ex.getMessage() );
}
}
public static Session getSession()
{
Session localSession = threadLocal.get();
localSession = sessionFactory.openSession();
threadLocal.set(localSession);
return localSession;
}
}
Quando clico em no Botao “OK” … Executo a seguinte açao:
new HibernateUtil();
Quando o DB está rodadando, usuario e senha e caminho para o banco estao corretos, conecta sem erros e assim liberando o frame da aplicaçao.
Massssssssssssssss, quando, por exemplo, usuario ou senha ou url do banco n está correto (o que pode acontecer dependendo do usuario final), não está me gerando nenhuma Exception e fica demorando muito nessa janela… o que não deveria acontecer.
Ja tentei colocar isso em uma Thread, e determinar um timeout, mais n deu certo. pois o processamento da SessionFactory ainda permanece.
Como faço para verificar se a sessionFactory é válida ou não???