Rupert Westenthaler created STANBOL-985:
-------------------------------------------

             Summary: EventJobManager reports a ChainException if executions 
finish before the main thread starts waiting for completion 
                 Key: STANBOL-985
                 URL: https://issues.apache.org/jira/browse/STANBOL-985
             Project: Stanbol
          Issue Type: Bug
          Components: Enhancer
    Affects Versions: enhancer-0.10.0
            Reporter: Rupert Westenthaler
            Assignee: Rupert Westenthaler


The EventJobManager executes enhancement chains by calling engines in different 
threads. The "main" thread does wait for the completion. A semaphore with a 
single permit is used for that.

However the method that waits for the completion has the bug that it does 
incorrectly return false (has not completed) when the execution of the chain 
has already finished before the method is called.

Users affected by this bug will see a ChainException with a message such as 

      org.apache.stanbol.enhancer.servicesapi.ChainException: Execution timeout 
after {time}sec (timeout:60sec) for ContentItem <{content-item-uri}>

where the {time} will be typically less than 1ms.

To fix this the 
EnhancementJobHandler.EnhancementJobObserver#waitForCompletion(..) method needs 
to be adapted to return "true" - completed - also in cases where there is a 
permit available on the semaphore as this state indicates that the execution 
has completed before the waitForCompletion(..) was called.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to