commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (Jira)" <j...@apache.org>
Subject [jira] [Work logged] (BEANUTILS-402) Double-Checked Locking anti pattern in WeakFastHashMap
Date Wed, 23 Oct 2019 15:44:00 GMT

     [ https://issues.apache.org/jira/browse/BEANUTILS-402?focusedWorklogId=332645&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-332645
]

ASF GitHub Bot logged work on BEANUTILS-402:
--------------------------------------------

                Author: ASF GitHub Bot
            Created on: 23/Oct/19 15:43
            Start Date: 23/Oct/19 15:43
    Worklog Time Spent: 10m 
      Work Description: melloware commented on pull request #15: [BEANUTILS-402] Double-Checked
Locking anti pattern in WeakFastHashMap.
URL: https://github.com/apache/commons-beanutils/pull/15
 
 
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 332645)
    Remaining Estimate: 0h
            Time Spent: 10m

> Double-Checked Locking anti pattern in WeakFastHashMap
> ------------------------------------------------------
>
>                 Key: BEANUTILS-402
>                 URL: https://issues.apache.org/jira/browse/BEANUTILS-402
>             Project: Commons BeanUtils
>          Issue Type: Bug
>          Components: Bean / Property Utils, ConvertUtils &amp; Converters, Locale
BeanUtils / Converters
>    Affects Versions: 1.8.3
>         Environment: Win XP, but doesn't matter
>            Reporter: Volker Malzahn
>            Priority: Major
>             Fix For: 2.0.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The implementation of WeakFastHashMap has the flaw of implementing the Double-Checked
Locking anti pattern (see JavaDoc of that class). As described in the JavaDoc "This class
is not cross-platform.". In https://issues.apache.org/jira/browse/BEANUTILS-318 and https://issues.apache.org/jira/browse/BEANUTILS-373
this was solved for MethodUtils (usage of WeakFastHashMap). But following classes still use
WeakFastHashMap for a cache: BeanUtils, ConvertUtilsBean, PropertyUtilsBean, LocaleConvertUtilsBean.
> I would suggest to make WeakFastHashMap deprecated and to change every usage of that
class inside the commons-beanutils classes to a synchronized normal WeakHashMap like done
(as the second step) in https://issues.apache.org/jira/browse/BEANUTILS-318. Otherwise strange
things may happen in unusual plattforms/environments. An alternative could be to use "volatile"
inside WeakFastHashMap which would fix it for Java 5 and higher (see http://en.wikipedia.org/wiki/Double-checked_locking
or http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#volatile).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message