[ 
https://issues.apache.org/jira/browse/MINDEXER-52?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17965268#comment-17965268
 ] 

Olivier Lamy commented on MINDEXER-52:
--------------------------------------

This project has moved from Jira to GitHub Issues. This issue was migrated to 
[apache/maven-indexer#494|https://github.com/apache/maven-indexer/issues/494]. 

> reentrant locking in DefaultIndexingContent flawed
> --------------------------------------------------
>
>                 Key: MINDEXER-52
>                 URL: https://issues.apache.org/jira/browse/MINDEXER-52
>             Project: Maven Indexer (Moved to GitHub Issues)
>          Issue Type: Bug
>    Affects Versions: 4.1.2
>            Reporter: Milos Kleint
>            Priority: Critical
>             Fix For: 5.0.0
>
>
> DefaultIndexingContent.java contains the following pattern:
> {code:java}
>     public IndexReader getIndexReader()
>         throws IOException
>     {
>         lock();
>         try
>         {
>             return indexReader;
>         }
>         finally
>         {
>             unlock();
>         }
>     }
> {code}
> together with installBottleWarmer() method that spawns a concurrent thread 
> that performs "warmup" operations, it makes it impossible to access the 
> indexReader instance safely. A correct approach would be to wrap the entire 
> operation with the indexreader in the mutex lock, not the the accessor method.
> please see http://netbeans.org/bugzilla/show_bug.cgi?id=204706  and 
> http://statistics.netbeans.org/exceptions/detail.do?id=180712 for examples 
> when this approach is failing. it's fairly rare but  keeps on reoccuring, all 
> access (searching, indexing) from netbeans is protected by a mutex and 
> happens exclusively. I'm assuming that the installBottleWarmer() thread is 
> the one iterfering with our access occasionally.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to