You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2022/07/04 13:52:21 UTC

[commons-dbcp] branch master updated: SpotBugs: An overridable method is called from a constructor

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbcp.git


The following commit(s) were added to refs/heads/master by this push:
     new 3b6f88d0 SpotBugs: An overridable method is called from a constructor
3b6f88d0 is described below

commit 3b6f88d087a17ad4aca8d9155026f30ac79b2478
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Mon Jul 4 09:52:15 2022 -0400

    SpotBugs: An overridable method is called from a constructor
    
    Calling an overridable method during in a constructor may result in the
    use of uninitialized data. It may also leak the this reference of the
    partially constructed object. Only static, final or private methods
    should be invoked from a constructor.
    See SEI CERT rule MET05-J. Ensure that constructors do not call
    overridable methods.
    
    Bug kind and pattern: MC - MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR
---
 src/changes/changes.xml                                             | 6 ++++++
 .../java/org/apache/commons/dbcp2/PoolableCallableStatement.java    | 2 +-
 .../java/org/apache/commons/dbcp2/PoolablePreparedStatement.java    | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 847d900a..7439b9c2 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -104,6 +104,12 @@ The <action> type attribute can be add,update,fix,remove.
       <action dev="ggregory" type="fix" due-to="SpotBugs, Gary Gregory">
         Reuse pattern of throwing XAException instead of NullPointerException in LocalXAConnectionFactory.LocalXAResource.
       </action>
+      <action dev="ggregory" type="fix" due-to="SpotBugs, Gary Gregory">
+        SpotBugs: An overridable method is called from constructors in PoolableCallableStatement.
+      </action>
+      <action dev="ggregory" type="fix" due-to="SpotBugs, Gary Gregory">
+        SpotBugs: An overridable method is called from constructors in PoolablePreparedStatement.
+      </action>
       <!-- ADD -->
       <action dev="ggregory" type="add" due-to="Gary Gregory">
         Add and use AbandonedTrace#setLastUsed(Instant).
diff --git a/src/main/java/org/apache/commons/dbcp2/PoolableCallableStatement.java b/src/main/java/org/apache/commons/dbcp2/PoolableCallableStatement.java
index 788bf90f..b156b1e1 100644
--- a/src/main/java/org/apache/commons/dbcp2/PoolableCallableStatement.java
+++ b/src/main/java/org/apache/commons/dbcp2/PoolableCallableStatement.java
@@ -64,7 +64,7 @@ public class PoolableCallableStatement extends DelegatingCallableStatement {
 
         // Remove from trace now because this statement will be
         // added by the activate method.
-        removeThisTrace(getConnectionInternal());
+        removeThisTrace(connection);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/dbcp2/PoolablePreparedStatement.java b/src/main/java/org/apache/commons/dbcp2/PoolablePreparedStatement.java
index 2c730059..9e7b1363 100644
--- a/src/main/java/org/apache/commons/dbcp2/PoolablePreparedStatement.java
+++ b/src/main/java/org/apache/commons/dbcp2/PoolablePreparedStatement.java
@@ -68,7 +68,7 @@ public class PoolablePreparedStatement<K> extends DelegatingPreparedStatement {
 
         // Remove from trace now because this statement will be
         // added by the activate method.
-        removeThisTrace(getConnectionInternal());
+        removeThisTrace(conn);
     }
 
     @Override