aboutsummaryrefslogtreecommitdiff
path: root/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBUtils.java
diff options
context:
space:
mode:
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.java10
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();
}