db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Pendleton (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4124) Broken double-checked-locking in EmbeddedDataSource.findDriver
Date Sat, 07 Nov 2009 01:55:41 GMT

     [ 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:
>         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.

View raw message