[jira] Updated: (NUTCH-471) Fix synchronization in NutchBean creation

2007-04-27 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated NUTCH-471:


Attachment: NutchBeanCreationSync_v2.patch

From http://www-128.ibm.com/developerworks/java/library/j-dcl.html

The bottom line is that double-checked locking, in whatever form, should not be 
used because you cannot guarantee that it will work on any JVM implementation. 
JSR-133 is addressing issues regarding the memory model, however, 
double-checked locking will not be supported by the new memory model. 
Therefore, you have two options:
* Accept the synchronization of a getInstance() method as shown in Listing 
2.
* Forgo synchronization and use a static field.

We don't want to remise performance in NutchBean.get(), synchronization is not 
a solution. Thus as Sami has suggested, i have written a ServetContextListener 
and added NutchBean construction code there. And modified web.xml to register 
the event listener class. Also In the servlet initialization, the Configuration 
object is initialized and cached by NutchConfiguration, so we avoid the same 
problem in NutchConfiguration.get(). 

 i have tested the implementation and it seems OK. 


 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, 
 NutchBeanCreationSync_v2.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.



[jira] Updated: (NUTCH-471) Fix synchronization in NutchBean creation

2007-04-24 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated NUTCH-471:


Attachment: NutchBeanCreationSync_v1.patch

this patch synchronizes NutchBean.get((ServletContext app, Configuration conf) 
using servlet context as mutex. (NutchBean)app.getAttribute(nutchBean) is 
checked twice, the first one is not synchronized for performance reasons. 

 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.