diff --git a/sonar-project.properties b/sonar-project.properties
new file mode 100644
index 0000000000000000000000000000000000000000..2897991fa1987310aeeb244710e2ab99372ebeeb
--- /dev/null
+++ b/sonar-project.properties
@@ -0,0 +1,4 @@
+sonar.projectName=MIP Backend - stable
+sonar.projectVersion=1.0
+sonar.projectKey=mip:backend:stable
+sonar.sources=./src/main/java/
\ No newline at end of file
diff --git a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
index 868b7ed860f08eb63d1bb88a572355d00f30c486..7e04a8d226c5ef5a69f63d1e7f25d60efb6b8713 100644
--- a/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
+++ b/src/main/java/org/hbp/mip/controllers/ExperimentApi.java
@@ -149,7 +149,10 @@ public class ExperimentApi {
             transaction.commit();
 
         } catch (Exception e) {
-            transaction.rollback();
+            if(transaction != null)
+            {
+                transaction.rollback();
+            }
             e.printStackTrace();
             // 400 here probably
             return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);
@@ -291,7 +294,10 @@ public class ExperimentApi {
             session.getTransaction().commit();
         } catch (Exception e) {
             // 404 here probably
-            session.getTransaction().rollback();
+            if(session.getTransaction() != null)
+            {
+                session.getTransaction().rollback();
+            }
             throw e;
         }
 
@@ -333,7 +339,10 @@ public class ExperimentApi {
             transaction.commit();
         } catch (Exception e) {
             // 404 here probably
-            transaction.rollback();
+            if(transaction != null)
+            {
+                transaction.rollback();
+            }
             throw e;
         }
 
@@ -372,7 +381,10 @@ public class ExperimentApi {
             transaction.commit();
         } catch (Exception e) {
             // 404 here probably
-            transaction.rollback();
+            if(transaction != null)
+            {
+                transaction.rollback();
+            }
             throw e;
         }
 
@@ -442,7 +454,10 @@ public class ExperimentApi {
             // 404 here probably
             throw e;
         } finally {
-            session.getTransaction().rollback();
+            if(session.getTransaction() != null)
+            {
+                session.getTransaction().rollback();
+            }
         }
 
         return new ResponseEntity<>(gson.toJson(experiments), HttpStatus.OK);
diff --git a/src/main/java/org/hbp/mip/utils/HibernateUtil.java b/src/main/java/org/hbp/mip/utils/HibernateUtil.java
index 3048e20b8f338a7ce22d047f9701ac89176d98b8..bbb0296db496156b39b7c5cd140ba62c90fa07d3 100644
--- a/src/main/java/org/hbp/mip/utils/HibernateUtil.java
+++ b/src/main/java/org/hbp/mip/utils/HibernateUtil.java
@@ -21,7 +21,7 @@ public class HibernateUtil {
                     configuration.getProperties()).build();
             sessionFactory = configuration.buildSessionFactory(serviceRegistry);
             return sessionFactory;
-        } catch (Throwable ex) {
+        } catch (RuntimeException ex) {
             System.err.println("Initial SessionFactory creation failed." + ex);
             throw new ExceptionInInitializerError(ex);
         }