From cbd1b0a76a10c34e4348fb49e2a78ea09e9fc3f5 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Sun, 19 Jun 2016 22:55:03 +0200
Subject: [PATCH] Closing em factory so Hibernate will not hang

---
 .../mi/sda1/hiberjpa/PersistDriver.java       | 43 +++++++++----------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/P/Sda1/Jpa/HibernateStandalone/src/main/java/de/hdm_stuttgart/mi/sda1/hiberjpa/PersistDriver.java b/P/Sda1/Jpa/HibernateStandalone/src/main/java/de/hdm_stuttgart/mi/sda1/hiberjpa/PersistDriver.java
index 88206ebd5..126a46c0d 100644
--- a/P/Sda1/Jpa/HibernateStandalone/src/main/java/de/hdm_stuttgart/mi/sda1/hiberjpa/PersistDriver.java
+++ b/P/Sda1/Jpa/HibernateStandalone/src/main/java/de/hdm_stuttgart/mi/sda1/hiberjpa/PersistDriver.java
@@ -2,36 +2,35 @@ package de.hdm_stuttgart.mi.sda1.hiberjpa;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
-import javax.persistence.EntityTransaction;
 import javax.persistence.Persistence;
 
 import de.hdm_stuttgart.mi.sda1.hiberjpa.model.Lecture;
 
-
 /**
  * A simple Jpa 2.1 example
  * 
  */
 public class PersistDriver {
 
-    /**
-     * @param args Unused
-     */
-    public static void main( String[] args ) {
-       final EntityManagerFactory emFactory =  Persistence.createEntityManagerFactory("jpa-recreate");
-       
-       final EntityManager em = emFactory.createEntityManager();
-       
-       {
-          final EntityTransaction transaction = em.getTransaction();
-          transaction.begin();
-          
-          final Lecture sda1 = new Lecture("Structure data and applications 1");
-          em.persist(sda1);
-          
-          transaction.commit();
-       }
-       
-       em.close();
-    }
+   /**
+    * @param args
+    *           Unused
+    */
+   public static void main(String[] args) {
+      final EntityManagerFactory emFactory = Persistence
+            .createEntityManagerFactory("jpa-recreate");
+
+      final EntityManager em = emFactory.createEntityManager();
+
+      em.getTransaction().begin();
+      {
+         em.persist(new Lecture("Structure data and applications 1"));
+      }
+      em.getTransaction().commit();
+
+      em.close();
+
+      // See http://stackoverflow.com/questions/21645516/program-using-hibernate-does-not-terminate
+      emFactory.close();
+   }
 }
-- 
GitLab