postgresql-jdbc.git / summary / log / commit / refs

commit    b3a2f80c90cfa05450b5c6a88cdbda5f2dfee155
Author:   Vladimir Sitnikov <sitnikov.vladimir@gmail.com>
Date:     Thu Jun 04 23:39:25 2015 +0000

    perf: Remove AbstractJdbc2Statement.finalize()
    
    Removes AbstractJdbc2Statement.finalize() as server side resource
    cleanup is already handled byQueryExecutorImpl#processDeadParsedQueries.
    
    With this change, if many prepared statements are created, but not
    closed, and no further activity occurs on the connection, then the
    server side resources for those connections will never be closed. The
    scenario is considered to be unlikely and in any event is incorrect
    usage of the driver.


org/postgresql/jdbc2/AbstractJdbc2Statement.java | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/org/postgresql/jdbc2/AbstractJdbc2Statement.java b/org/postgresql/jdbc2/AbstractJdbc2Statement.java index b6b253fc..0289f069 100644 --- a/org/postgresql/jdbc2/AbstractJdbc2Statement.java +++ b/org/postgresql/jdbc2/AbstractJdbc2Statement.java @@ -22,6 +22,7 @@ import java.util.TimeZone; import java.util.Calendar; import org.postgresql.Driver; +import org.postgresql.core.v3.QueryExecutorImpl; import org.postgresql.largeobject.*; import org.postgresql.core.*; import org.postgresql.core.types.*; @@ -863,22 +864,9 @@ public abstract class AbstractJdbc2Statement implements BaseStatement } /** - * This finalizer ensures that statements that have allocated server-side - * resources free them when they become unreferenced. + * Statement finalizer is not required as "statement" at the database side + * is managed by a {@link java.lang.ref.PhantomReference} in {@link QueryExecutorImpl#processDeadParsedQueries()}. */ - protected void finalize() throws Throwable { - try - { - close(); - } - catch (SQLException e) - { - } - finally - { - super.finalize(); - } - } /* * Filter the SQL string of Java SQL Escape clauses. [parent: c9214d31b7ab]