Author: fhanik
Date: Tue Mar 20 15:45:19 2012
New Revision: 1302948
URL: http://svn.apache.org/viewvc?rev=1302948view=rev
Log:
https://issues.apache.org/bugzilla/show_bug.cgi?id=52002 add in ability to
configure pool so that connections can not be reused
Added:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
tomcat/trunk/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/MultipleCloseTest.java
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/JdbcInterceptor.java
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolConfiguration.java
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/jmx/ConnectionPool.java
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java?rev=1302948r1=1302947r2=1302948view=diff
==
---
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ConnectionPool.java
Tue Mar 20 15:45:19 2012
@@ -312,7 +312,12 @@ public class ConnectionPool {
getProxyConstructor(con.getXAConnection() != null);
//create the proxy
//TODO possible optimization, keep track if this connection was
returned properly, and don't generate a new facade
-Connection connection =
(Connection)proxyClassConstructor.newInstance(new Object[] { handler });
+Connection connection = null;
+if (getPoolProperties().getUseDisposableConnectionFacade() ) {
+connection = (Connection)proxyClassConstructor.newInstance(new
Object[] { new DisposableConnectionFacade(handler) });
+} else {
+connection = (Connection)proxyClassConstructor.newInstance(new
Object[] {handler});
+}
//return the connection
return connection;
}catch (Exception x) {
Modified:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java?rev=1302948r1=1302947r2=1302948view=diff
==
---
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
(original)
+++
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DataSourceProxy.java
Tue Mar 20 15:45:19 2012
@@ -1226,4 +1226,20 @@ public class DataSourceProxy implements
return getPoolProperties().getRollbackOnReturn();
}
+/**
+ * {@inheritDoc}
+ */
+@Override
+public void setUseDisposableConnectionFacade(boolean
useDisposableConnectionFacade) {
+
getPoolProperties().setUseDisposableConnectionFacade(useDisposableConnectionFacade);
+}
+
+/**
+ * {@inheritDoc}
+ */
+@Override
+public boolean getUseDisposableConnectionFacade() {
+return getPoolProperties().getUseDisposableConnectionFacade();
+}
+
}
Added:
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java?rev=1302948view=auto
==
---
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
(added)
+++
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/DisposableConnectionFacade.java
Tue Mar 20 15:45:19 2012
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES