Erro ao realizar o login - hibernate

Boa tarde,
Quando vou realizar o login pela primeira vez no sistema, ele apresenta o erro abaixo, mas quando tento novamente ele funciona normalmente, alguém sabe me explicar o pq esta acontecendo isso?
estou usando o sql server 2005 e hibernante 4.3.1

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:602)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

Root Cause

org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode
org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.isAutoCommit(LogicalConnectionImpl.java:325)
org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.afterNonTransactionalQuery(TransactionCoordinatorImpl.java:194)
org.hibernate.internal.SessionImpl.afterOperation(SessionImpl.java:499)
org.hibernate.internal.SessionImpl.list(SessionImpl.java:1265)
org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
DAO.ai3DAO.listarUsuario(ai3DAO.java:27)
org.apache.jsp.validarLogin_jsp._jspService(validarLogin_jsp.java:147)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

Root Cause

java.sql.SQLException: Invalid state, the Connection object is closed.
net.sourceforge.jtds.jdbc.ConnectionJDBC2.checkOpen(ConnectionJDBC2.java:1699)
net.sourceforge.jtds.jdbc.ConnectionJDBC2.getAutoCommit(ConnectionJDBC2.java:2123)
org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.isAutoCommit(LogicalConnectionImpl.java:322)
org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.afterNonTransactionalQuery(TransactionCoordinatorImpl.java:194)
org.hibernate.internal.SessionImpl.afterOperation(SessionImpl.java:499)
org.hibernate.internal.SessionImpl.list(SessionImpl.java:1265)
org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
DAO.ai3DAO.listarUsuario(ai3DAO.java:27)
org.apache.jsp.validarLogin_jsp._jspService(validarLogin_jsp.java:147)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

Algures a tua conexão está a ser fechada. Como deves ter pool de conexões, é usada uma nova da segunda vez e tudo funciona.
Mas deves ter algo no teu código que está a fechar erradamente uma conexão.