You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2022/05/03 02:42:00 UTC

[jira] [Comment Edited] (DBCP-583) The "DelegatingConnection.getCatalog" method can return incorrect cached values

    [ https://issues.apache.org/jira/browse/DBCP-583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17481982#comment-17481982 ] 

Gary D. Gregory edited comment on DBCP-583 at 5/3/22 2:41 AM:
--------------------------------------------------------------

Hello [~iteijeiro] 

What about {{org.apache.commons.dbcp2.DelegatingConnection.clearCachedState()}}?
Feel free to provide a PR on GitHub (with a test).

 


was (Author: garydgregory):
Hello [~iteijeiro] 

Feel free to provide a PR on GitHub (with a test).

 

> The "DelegatingConnection.getCatalog" method can return incorrect cached values
> -------------------------------------------------------------------------------
>
>                 Key: DBCP-583
>                 URL: https://issues.apache.org/jira/browse/DBCP-583
>             Project: Commons DBCP
>          Issue Type: Bug
>    Affects Versions: 2.9.0
>            Reporter: Ismael Teijeiro Flórez
>            Priority: Major
>
> Commons DBCP started caching the catalog name returned by {{getCatalog}} (
> [https://github.com/apache/commons-dbcp/blob/922eb2685ff64bdb27607ceecbe333330e5be4c0/src/main/java/org/apache/commons/dbcp2/DelegatingConnection.java]). This can cause the method to return incorrect values after using a pooled connection to execute a SQL command that effectively changes the catalog of the connection.
> The motivation for executing a SQL command that changes the catalog of a connection instead of calling {{setCatalog}} is that some vendors provide commands that allow for "new connections" to happen on an already established connection (i.e. commands that allow connecting to a different catalog, with a different user). Commons DBCP doesn't offer a way to clear the cache of a connection when something like this happens, which can lead to incorrect results.
> We also think that calling the {{close}} method on the connection should invoke the {{clearCachedState}} method (as it is called when a transaction ends: 
> [https://github.com/apache/commons-dbcp/blob/922eb2685ff64bdb27607ceecbe333330e5be4c0/src/main/java/org/apache/commons/dbcp2/managed/ManagedConnection.java]).



--
This message was sent by Atlassian Jira
(v8.20.7#820007)