Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/RiverService.java @ 314:aeeb9054b7cf
Acquire/release sessions in services to avoid db connection leaks.
flys-artifacts/trunk@1699 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 14 Apr 2011 13:45:50 +0000 |
parents | d6197a05a87c |
children | 4aa078e28cfd |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/RiverService.java Thu Apr 14 13:36:06 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/RiverService.java Thu Apr 14 13:45:50 2011 +0000 @@ -17,7 +17,9 @@ import de.intevation.flys.model.River; import de.intevation.flys.artifacts.model.RiverFactory; +import de.intevation.flys.artifacts.model.SessionHolder; +import org.hibernate.Session; /** * This service provides information about the supported rivers by this @@ -52,18 +54,25 @@ ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); - List<River> allRivers = RiverFactory.getRivers(); - - Element rivers = ec.create("rivers"); + Session session = SessionHolder.acquire(); + try { + List<River> allRivers = RiverFactory.getRivers(); - for (River river: allRivers) { - Element r = ec.create("river"); - ec.addAttr(r, "name", river.getName(), true); + Element rivers = ec.create("rivers"); - rivers.appendChild(r); + for (River river: allRivers) { + Element r = ec.create("river"); + ec.addAttr(r, "name", river.getName(), true); + + rivers.appendChild(r); + } + + result.appendChild(rivers); } - - result.appendChild(rivers); + finally { + session.close(); + SessionHolder.release(); + } return result; }