diff options
Diffstat (limited to 'id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBUtils.java')
-rw-r--r-- | id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBUtils.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBUtils.java index dc0e493d1..4bb0a08ea 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBUtils.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBUtils.java @@ -23,7 +23,7 @@ public final class ConfigurationDBUtils { protected ConfigurationDBUtils() { } - public static void initHibernate(Properties props) { + public static void initHibernate(Properties props) throws MOADatabaseException { try { @@ -44,13 +44,15 @@ public final class ConfigurationDBUtils { entitymanagerfactory = Persistence.createEntityManagerFactory("at.gv.egovernment.moa.id.commons.db.dao.config", props); + + Logger.debug("Initial session factory successfully created."); } catch (Throwable ex) { Logger.error("Initial session factory creation failed: " + ex.getMessage()); - throw new ExceptionInInitializerError(ex); + throw new MOADatabaseException("Initialization of Configuration Hibernate session factory failed.",ex); } } @@ -71,7 +73,7 @@ public final class ConfigurationDBUtils { EntityManager session = (EntityManager) THREAD_LOCAL_CONFIG.get(); // Open a new Session, if this Thread has none yet - if (session == null) { + if (session == null || !session.isOpen()) { session = getNewSession(); } return session; @@ -85,7 +87,7 @@ public final class ConfigurationDBUtils { return entitymanagerfactory.createEntityManager(); } EntityManager session = (EntityManager) THREAD_LOCAL_CONFIG.get(); - if (session != null) { + if (session != null ) { Logger.warn("Previous session has not been closed; closing session now."); closeSession(); } |