Author: boisvert
Date: Fri Aug  7 18:31:31 2009
New Revision: 802136

URL: http://svn.apache.org/viewvc?rev=802136&view=rev
Log:
ODE-645: Possible connection leak during JdbcExternalVariableModule if 
initialization fails

Modified:
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java?rev=802136&r1=802135&r2=802136&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/JdbcExternalVariableModule.java
 Fri Aug  7 18:31:31 2009
@@ -113,9 +113,13 @@
         DatabaseMetaData metaData;
         try {
             conn = ds.getConnection();
-            conn.setAutoCommit(false);
             metaData = conn.getMetaData();
         } catch (Exception ex) {
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                // ignore
+            }
             throw new ExternalVariableModuleException("Unable to open database 
connection for external variable " + evarId, ex);
         }
         
@@ -355,7 +359,11 @@
             return stmt.executeUpdate();
         } finally {
             if (stmt != null) stmt.close();
-            conn.close();
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                // ignore
+            }
         }
     }
 
@@ -526,7 +534,11 @@
             }
         } finally {
             if (stmt != null) stmt.close();
-            conn.close();
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                // ignore
+            }
         }
 
         return ret;
@@ -586,7 +598,11 @@
             return keys;
         } finally {
             if (stmt != null) stmt.close();
-            conn.close();
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                // ignore
+            }
         }
     }
 


Reply via email to