浏览代码

!66 bugfix:ThreadLocalConnection 多数据源情况下可能存在连接未关闭问题
Merge pull request !66 from linan/v4-dev

Looly 6 年之前
父节点
当前提交
4a247db4b7
共有 1 个文件被更改,包括 11 次插入1 次删除
  1. 11 1
      hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java

+ 11 - 1
hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java

@@ -46,7 +46,9 @@ public enum ThreadLocalConnection {
 		GroupedConnection groupedConnection = threadLocal.get();
 		if (null != groupedConnection) {
 			groupedConnection.close(ds);
-			threadLocal.remove();
+			if(groupedConnection.removeAble()){
+				threadLocal.remove();
+			}
 		}
 	}
 
@@ -97,5 +99,13 @@ public enum ThreadLocalConnection {
 			}
 			return this;
 		}
+		
+		/**
+		 * 多数据源情况情况下判断是否能从上下文中删除
+		 * @return
+		 */
+		public boolean removeAble(){
+			return connMap.size()==0;
+		}
 	}
 }