[OLINGO-1269] Release database connection when updating a not-existed entity
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java
index e8f3070..2aaef0d 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/access/data/JPAProcessorImpl.java
@@ -365,8 +365,9 @@
       final InputStream content, final Map<String, Object> properties, final String requestContentType)
       throws ODataJPAModelException, ODataJPARuntimeException {
     Object jpaEntity = null;
+    boolean isLocalTransaction = false;
     try {
-      boolean isLocalTransaction = setTransaction();
+      isLocalTransaction = setTransaction();
       jpaEntity = readEntity(new JPAQueryBuilder(oDataJPAContext).build(updateView));
 
       if (jpaEntity == null) {
@@ -402,6 +403,10 @@
       em.getTransaction().rollback();
       throw ODataJPARuntimeException.throwException(
           ODataJPARuntimeException.ERROR_JPQL_QUERY_CREATE, e);
+    } finally {
+      if (isLocalTransaction && oDataJPAContext.getODataJPATransaction().isActive()) {
+          oDataJPAContext.getODataJPATransaction().rollback();
+      }
     }
     return jpaEntity;
   }