Sem entender Exceção do Hibernate no Netbeans

Pessoal estou utilizando Hibernate para persistir os dados de uma aplicação desktop, sendo que o mesmo lança a exceção abaixo citada e mesmo assim persistem os dados no banco (MySQL), alguém pode explicar?

Desde já peço desculpas caso haja um tópico sobre o mesmo assunto, pois não localizei.

Fev 01, 2013 6:34:22 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
Informações: Not binding factory to JNDI, no JNDI name configured
org.hibernate.SessionException: Session was already closed
	at org.hibernate.impl.SessionImpl.close(SessionImpl.java:275)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)
	at $Proxy0.close(Unknown Source)
	at br.com.mastersoft.dao.GenericDAO.insert(GenericDAO.java:24)
	at br.com.mastersoft.frames.frmAddUsuario.bOkActionPerformed(frmAddUsuario.java:192)
	at br.com.mastersoft.frames.frmAddUsuario.access$100(frmAddUsuario.java:15)
	at br.com.mastersoft.frames.frmAddUsuario$2.actionPerformed(frmAddUsuario.java:89)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at com.jtattoo.plaf.BaseButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Component.java:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
	at java.awt.Dialog.show(Dialog.java:1072)
	at java.awt.Component.show(Component.java:1650)
	at java.awt.Component.setVisible(Component.java:1602)
	at java.awt.Window.setVisible(Window.java:1013)
	at java.awt.Dialog.setVisible(Dialog.java:1003)
	at br.com.mastersoft.frames.frmUsuario.bAdicionarActionPerformed(frmUsuario.java:136)
	at br.com.mastersoft.frames.frmUsuario.access$000(frmUsuario.java:13)
	at br.com.mastersoft.frames.frmUsuario$1.actionPerformed(frmUsuario.java:49)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at com.jtattoo.plaf.BaseButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Component.java:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
	at java.awt.Dialog.show(Dialog.java:1072)
	at java.awt.Component.show(Component.java:1650)
	at java.awt.Component.setVisible(Component.java:1602)
	at java.awt.Window.setVisible(Window.java:1013)
	at java.awt.Dialog.setVisible(Dialog.java:1003)
	at br.com.mastersoft.frames.frmPrincipal.jButton1ActionPerformed(frmPrincipal.java:286)
	at br.com.mastersoft.frames.frmPrincipal.access$100(frmPrincipal.java:19)
	at br.com.mastersoft.frames.frmPrincipal$1.actionPerformed(frmPrincipal.java:119)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at com.jtattoo.plaf.BaseButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Component.java:6504)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
CONSTRUÍDO COM SUCESSO (tempo total: 2 minutos 19 segundos)

Leia a raiz da exceção: org.hibernate.SessionException: Session was already closed.
A sessão já foi fechada, ou seja, você está tentando usar uma sessão que não pode mais ser usada.

davidbuzatt muito obrigado pela explicação, estou iniciando em Hibernate e utilizando-o em projeto para fixar, então como eu poderia evitar esse problema?

Desde já agradeço.

Coloca ai o código que você está utilizando para que eu possa te ajudar. Também coloca a configuração do teu applicationContext para eu verificar os parametros de conexão com o banco de dados.

[quote=JMARQ]davidbuzatt muito obrigado pela explicação, estou iniciando em Hibernate e utilizando-o em projeto para fixar, então como eu poderia evitar esse problema?
Desde já agradeço.[/quote]
Poste seu código (só a parte que cria a sessão, usa e então fecha).

Segue o código que uso para inserir os dados:

       try{
            Usuario user = new Usuario();
            Session s = HibernateUtil.getSessionFactory().getCurrentSession();
            s.beginTransaction();
            s.save(user);
            s.beginTransaction().commit();
            s.close();
        }catch(HibernateException e){
            e.printStackTrace();
        }

Agora não lembro de cabeça se o beginTransaction abre uma nova transação a cada invocação. Tente mudar para isso aqui:

try{ Usuario user = new Usuario(); Session s = HibernateUtil.getSessionFactory().getCurrentSession(); Transaction t = s.beginTransaction(); s.save(user); t.commit(); s.close(); }catch(HibernateException e){ e.printStackTrace(); }

Mas não é esse o seu problema. Perceba que você está dando um close na sessão, mas cada vez que obtém uma sessão não é uma nova sessão (estou inferindo isso pelo nome do método getCurrentSession()).
Para verificar se é isso mesmo, comente a linha s.close(); (em todos os lugares que você usa) e verifique se para de dar erro. Se parar é isso mesmo, então você descomenta o que foi comentado e então ao invés de obter a sessão corrente, crie uma nova sempre e veja se funciona.

[]'s

davidbuzatto, boa noite.

O problema foi resolvido da forma que você indicou, criando uma nova sessão e comentando a linha s.close().

Muito agradecido pela ajuda. Até mais.