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

Chetan Mehrotra commented on OAK-6622:
--------------------------------------

This default behaviour is bit counterintutive [1]. 

[1] https://stackoverflow.com/q/19528304

> Configure default core pool size for thread pool used by oak-lucene
> -------------------------------------------------------------------
>
>                 Key: OAK-6622
>                 URL: https://issues.apache.org/jira/browse/OAK-6622
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: lucene
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>             Fix For: 1.8
>
>
> {{LuceneIndexProviderService}} currently configures a thread pool like below
> {code}
>  ThreadPoolExecutor executor = new ThreadPoolExecutor(
>           0,  //corePoolSize
>           5, //maxPoolSize
>          60L, 
>          TimeUnit.SECONDS,
>          new LinkedBlockingQueue<Runnable>(), //Unbounded queue
>          new ThreadFactory() {
> {code}
> Per 
> [ThreadPoolExecutor|https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html]
>  
> {quote}
> If there are more than corePoolSize but less than maximumPoolSize threads 
> running, a new thread will be created *only if the queue is full*
> {quote}
> Due to this currently the thread pool created by oak-lucene would only have 1 
> thread to handle all task as the queue is unbounded one. And if for some 
> reason this thread gets stuck (due to some lock) then it would prevent other 
> task in pool from further processing.
>  



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to