You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Bryan Pendleton (JIRA)" <ji...@apache.org> on 2009/11/07 02:55:41 UTC
[jira] Updated: (DERBY-4124) Broken double-checked-locking in
EmbeddedDataSource.findDriver
[ https://issues.apache.org/jira/browse/DERBY-4124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bryan Pendleton updated DERBY-4124:
-----------------------------------
Attachment: alwaysSynchronize.diff
The proposed change seems correct to me. I removed the extra 'if'
statement and adjusted the indentation, in the attached patch.
A complete regression test run was clean.
I'm intending to commit this change.
> Broken double-checked-locking in EmbeddedDataSource.findDriver
> --------------------------------------------------------------
>
> Key: DERBY-4124
> URL: https://issues.apache.org/jira/browse/DERBY-4124
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.4.2.0
> Environment: all
> Reporter: Ronald Tschalaer
> Assignee: Bryan Pendleton
> Attachments: alwaysSynchronize.diff
>
>
> org.apache.derby.jdbc.EmbeddedDataSource.findDriver() uses the
> double-checked-locking idiom for setting the 'driver' variable. This
> idiom is, however, not correct and hence the code is broken. The fix
> is to remove the outer if, i.e. to always enter the synchronized block.
> See also
> http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.