summaryrefslogtreecommitdiff
path: root/src/main/java/com/zaxxer/hikari/pool/ProxyStatement.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/zaxxer/hikari/pool/ProxyStatement.java')
-rw-r--r--src/main/java/com/zaxxer/hikari/pool/ProxyStatement.java22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/main/java/com/zaxxer/hikari/pool/ProxyStatement.java b/src/main/java/com/zaxxer/hikari/pool/ProxyStatement.java
index 1d92cd8..bb5ac69 100644
--- a/src/main/java/com/zaxxer/hikari/pool/ProxyStatement.java
+++ b/src/main/java/com/zaxxer/hikari/pool/ProxyStatement.java
@@ -20,7 +20,6 @@ import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-import java.sql.Wrapper;
/**
* This is the proxy class for java.sql.Statement.
@@ -30,17 +29,18 @@ import java.sql.Wrapper;
public abstract class ProxyStatement implements Statement
{
protected final ProxyConnection connection;
- protected final Statement delegate;
+ final Statement delegate;
private boolean isClosed;
private ResultSet proxyResultSet;
- protected ProxyStatement(ProxyConnection connection, Statement statement)
+ ProxyStatement(ProxyConnection connection, Statement statement)
{
this.connection = connection;
this.delegate = statement;
}
+ @SuppressWarnings("unused")
final SQLException checkException(SQLException e)
{
return connection.checkException(e);
@@ -51,10 +51,7 @@ public abstract class ProxyStatement implements Statement
public final String toString()
{
final String delegateToString = delegate.toString();
- return new StringBuilder(64 + delegateToString.length())
- .append(this.getClass().getSimpleName()).append('@').append(System.identityHashCode(this))
- .append(" wrapping ")
- .append(delegateToString).toString();
+ return this.getClass().getSimpleName() + '@' + System.identityHashCode(this) + " wrapping " + delegateToString;
}
// **********************************************************************
@@ -65,11 +62,14 @@ public abstract class ProxyStatement implements Statement
@Override
public final void close() throws SQLException
{
- if (isClosed) {
- return;
+ synchronized (this) {
+ if (isClosed) {
+ return;
+ }
+
+ isClosed = true;
}
- isClosed = true;
connection.untrackStatement(delegate);
try {
@@ -231,7 +231,7 @@ public abstract class ProxyStatement implements Statement
if (iface.isInstance(delegate)) {
return (T) delegate;
}
- else if (delegate instanceof Wrapper) {
+ else if (delegate != null) {
return delegate.unwrap(iface);
}