Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.9.0-incubating
-
None
Description
The EventJobManager does not complete an EnhancementJob if the following Situation occurs
- An EnhancementEngine fails
- The failed engine is not the last on in the EnhancementChain
- No other engines are executed in parallel
The reason for that is the the EnhancementJobHander (asyc execution using osgi.service.event framework) needs to notify the EventJobManagerImpl if an EnhancementJob completes. However in the above situation this does not occur and because of the the EventJobManagerImpl waits "forever" for the completion of the job - similar to a deadlock.
To solve this the EnhancementJob#isFinished() needs to be adopted to correctly report an Job as "finished" if EnhancementJob#isFailed() == true and not other engines are executed in parallel.