[ 
https://issues.apache.org/jira/browse/NUTCH-471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12491313
 ] 

Enis Soztutar commented on NUTCH-471:
-------------------------------------

> Nice trick with the unsynchronized check. :)
Wow, indeed i have used a pattern w/o knowing about it :) Seemed a simple and 
efficient solution to me.

>Isn't the DCL declared to be broken? 
After reading http://en.wikipedia.org/wiki/Double-checked_locking, i can say 
that this a very subtle bug. As suggested we can fix it by declaring NutchBean 
volatile. However i guess, that in that case would the servlet container should 
also be configured to use Java 1.5 instead of 1.4. 



> Fix synchronization in NutchBean creation
> -----------------------------------------
>
>                 Key: NUTCH-471
>                 URL: https://issues.apache.org/jira/browse/NUTCH-471
>             Project: Nutch
>          Issue Type: Bug
>          Components: searcher
>    Affects Versions: 1.0.0
>            Reporter: Enis Soztutar
>             Fix For: 1.0.0
>
>         Attachments: NutchBeanCreationSync_v1.patch
>
>
> NutchBean is created and then cached in servlet context. But 
> NutchBean.get(ServletContext app, Configuration conf) is not syncronized, 
> which causes more than one instance of the bean (and 
> DistributedSearch$Client) if servlet container is accessed rapidly during 
> startup. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to