From c12887ac1284702c2249b278cbbde2b34ef367a1 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 26 Apr 2010 07:31:31 +0000
Subject: [PATCH] double rollback bug fixed

SVN: 15629
---
 .../etlserver/phosphonetx/ProtXMLUploader.java | 18 ++++++++++++++----
 .../phosphonetx/ResultDataSetUploader.java     |  7 +++++--
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ProtXMLUploader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ProtXMLUploader.java
index 08a6c839369..2139de359ac 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ProtXMLUploader.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ProtXMLUploader.java
@@ -113,14 +113,24 @@ public class ProtXMLUploader implements IDataSetUploader
 
     public void commit()
     {
-        currentResultDataSetUploader.commit();
-        currentResultDataSetUploader = null;
+        try
+        {
+            currentResultDataSetUploader.commit();
+        } finally
+        {
+            currentResultDataSetUploader = null;
+        }
     }
 
     public void rollback()
     {
-        currentResultDataSetUploader.rollback();
-        currentResultDataSetUploader = null;
+        try
+        {
+            currentResultDataSetUploader.rollback();
+        } finally
+        {
+            currentResultDataSetUploader = null;
+        }
     }
 
     protected ResultDataSetUploader createUploader()
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java
index 09c66999f61..440b23de9aa 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetUploader.java
@@ -117,8 +117,11 @@ class ResultDataSetUploader extends AbstractHandler
     {
         try
         {
-            connection.rollback();
-            connection.close();
+            if (connection.isClosed() == false)
+            {
+                connection.rollback();
+                connection.close();
+            }
         } catch (SQLException ex)
         {
             throw CheckedExceptionTunnel.wrapIfNecessary(ex);
-- 
GitLab