From ebfe5b6898dc28bd950e42301dca1e2000962267 Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 10 Dec 2016 19:37:48 +0800 Subject: [PATCH] bug fixed DataSource.createPhysicalConnection. --- .../java/com/alibaba/druid/pool/DruidAbstractDataSource.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java index ebee782319..6e7a1fc195 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java @@ -1473,7 +1473,7 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements physicalConnectProperties.put("password", password); } - Connection conn; + Connection conn = null; long connectStartNanos = System.nanoTime(); long connectedNanos, initedNanos, validatedNanos; @@ -1494,13 +1494,16 @@ public abstract class DruidAbstractDataSource extends WrapperAdapter implements setCreateError(null); } catch (SQLException ex) { setCreateError(ex); + JdbcUtils.close(conn); throw ex; } catch (RuntimeException ex) { setCreateError(ex); + JdbcUtils.close(conn); throw ex; } catch (Error ex) { createErrorCount.incrementAndGet(); setCreateError(ex); + JdbcUtils.close(conn); throw ex; } finally { long nano = System.nanoTime() - connectStartNanos;