@ -288,6 +288,16 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource {
@@ -288,6 +288,16 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource {
// Connection has been fetched: use hashCode of Connection proxy.
@ -344,14 +354,14 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource {
@@ -344,14 +354,14 @@ public class LazyConnectionDataSourceProxy extends DelegatingDataSource {
elseif(method.getName().equals("clearWarnings")){
returnnull;
}
elseif(method.getName().equals("isClosed")){
returnthis.closed;
}
elseif(method.getName().equals("close")){
// Ignore: no target connection yet.
this.closed=true;
returnnull;
}
elseif(method.getName().equals("isClosed")){
returnthis.closed;
}
elseif(this.closed){
// Connection proxy closed, without ever having fetched a
@ -325,10 +325,23 @@ public class SingleConnectionDataSource extends DriverManagerDataSource
@@ -325,10 +325,23 @@ public class SingleConnectionDataSource extends DriverManagerDataSource
@ -196,8 +196,15 @@ public class TransactionAwareDataSourceProxy extends DelegatingDataSource {
@@ -196,8 +196,15 @@ public class TransactionAwareDataSourceProxy extends DelegatingDataSource {
}
returnsb.toString();
}
elseif(method.getName().equals("isClosed")){
returnthis.closed;
elseif(method.getName().equals("unwrap")){
if(((Class)args[0]).isInstance(proxy)){
returnproxy;
}
}
elseif(method.getName().equals("isWrapperFor")){
if(((Class)args[0]).isInstance(proxy)){
returntrue;
}
}
elseif(method.getName().equals("close")){
// Handle close method: only close if not within a transaction.
@ -205,6 +212,9 @@ public class TransactionAwareDataSourceProxy extends DelegatingDataSource {
@@ -205,6 +212,9 @@ public class TransactionAwareDataSourceProxy extends DelegatingDataSource {