[ https://issues.apache.org/jira/browse/DERBY-5561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13176753#comment-13176753 ]
Kathey Marsden commented on DERBY-5561: --------------------------------------- Just realized Brett's explanation is not in the Jira. It can be found in this thread. http://old.nabble.com/-jira---Created--%28DERBY-5561%29-Race-conditions-in-LogicalConnection-checking-for-a-null-physical-connection-to33046047.html#a33046825 > Race conditions in LogicalConnection checking for a null physical connection > ---------------------------------------------------------------------------- > > Key: DERBY-5561 > URL: https://issues.apache.org/jira/browse/DERBY-5561 > Project: Derby > Issue Type: Bug > Components: Network Client > Affects Versions: 10.8.2.2 > Environment: Solaris 10 > Glassfish V2.1.1 > ClientXADataSource connection pool > Reporter: Brett Bergquist > > There are race conditions with checkForNullPhysicalConnection calls in > LogicalConnection. checkForNullPhysicalConnection is not synchronized and it > checks for the member "phsyicalConnection" which can be cleared by > "nullPhsyicalConnection" (which is synchronized) and "close" (which is > synchronized) and "closeWithoutRecyclingToPool" (which is synchronized). > This affects "nativeSQL", "getAutoCommit", "getTransactionIsolation", > "getWarnings", "isReadOnly", "getCatalog", "getTypeMap", "createStatement", > "prepareCall", "prepareStatement", "setHoldability", "getHoldability", > "setSavePoint", "rollBack", "releaseSavePoint", "getSchema", "setSchema". > All of these call "checkForNullPhysicalConnection" and then use the member > "physicalConnection" after that call returns. Because these methods are not > synchronized, between the time "checkForNullPhysicalConnectoin" returns and > "physicalConnection" is used, the "physicalConnection" member could be set to > null and then a NPE occurs. > Probably all of these methods should be changed to synchronized. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira