# HG changeset patch # User Sascha L. Teichmann # Date 1300358851 0 # Node ID 222f4db3430a5dd9b3d3c1c86f09fed6a55253fb # Parent 1c0afb01bc938b791afe332075541fc4be17a9f0 Importer: Used thread local pattern to make sharing of session easier. flys-backend/trunk@1494 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 1c0afb01bc93 -r 222f4db3430a flys-backend/ChangeLog --- a/flys-backend/ChangeLog Thu Mar 17 10:29:18 2011 +0000 +++ b/flys-backend/ChangeLog Thu Mar 17 10:47:31 2011 +0000 @@ -1,3 +1,8 @@ +2011-03-17 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/importer/Importer.java: + Used thread local pattern to make sharing of session easier. + 2011-03-17 Sascha L. Teichmann * src/main/java/de/intevation/flys/importer/Importer.java: diff -r 1c0afb01bc93 -r 222f4db3430a flys-backend/src/main/java/de/intevation/flys/importer/Importer.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/Importer.java Thu Mar 17 10:29:18 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/Importer.java Thu Mar 17 10:47:31 2011 +0000 @@ -20,10 +20,11 @@ { private static Logger log = Logger.getLogger(Importer.class); + public static final ThreadLocal sessionHolder = + new ThreadLocal(); + protected List rivers; - protected Session session; - public Importer() { } @@ -41,6 +42,8 @@ public void writeRivers() { log.debug("write rivers started"); + Session session = sessionHolder.get(); + Query query = session.createQuery("from River where name=:name"); for (ImportRiver iriver: rivers) { log.debug("writing river '" + iriver.getName() + "'"); @@ -58,7 +61,10 @@ SessionFactory sessionFactory = SessionFactoryProvider.createSessionFactory(); - session = sessionFactory.openSession(); + Session session = sessionFactory.openSession(); + + sessionHolder.set(session); + Transaction tx = null; try { @@ -75,10 +81,8 @@ throw re; } finally { - if (session != null) { - session.close(); - session = null; - } + session.close(); + sessionHolder.remove(); } }