Hi,

before I might create a bug report I would like to ask the list if the behavior of the CPM engine in respect to daemon threads is intended or not.

The problem:
Within an AE I have created daemon threads for processing some tasks. The threads are within a singleton class with a static variable containing the single instance. The threads are explicitly marked as daemon threads in order to not wait for them after processing ends. After processing of all documents finished, the CPE calls CollectionProcessComplete but the application does not exit. The reason: in org.apache.uima.collection.impl.cpm.engine.CPMEngine a threadGroupDestroyer thread is created (line 2522) which waits for threads to die. Since it does not check for daemon threads it counts them as normal threads to wait for and thus it waits forever.

My workaround was to specify another ThreadGroup outside CPMThreadGroup. However this is only possible as long as I have the source code for the libraries in use.

In general I would think that UIMA should really test for daemon threads (even more as the used group.activeCount() should only be used for information purposes - as the javadoc states).

Any comments?

Thanks,
Timo

--

 Timo Boehme
 OntoChem GmbH
 H.-Damerow-Str. 4
 06120 Halle/Saale
 T: +49 345 4780472
 F: +49 345 4780471
 [email protected]

_____________________________________________________________________

 OntoChem GmbH
 Geschäftsführer: Dr. Lutz Weber
 Sitz: Halle / Saale
 Registergericht: Stendal
 Registernummer: HRB 215461
_____________________________________________________________________

Reply via email to