You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@uima.apache.org by Erik Fäßler <er...@uni-jena.de> on 2012/02/18 13:01:45 UTC
Exception in collectionProcessComplete not reported?
Hey folks,
I had an odd problem when I realized not all of my documents were actually treated by my consumer. I run a traditional CPE with 4 threads. After some time of research I came to note that my consumer-AE had an exception thrown which I never saw. The exception is thrown in this collectionProcessComplete method:
@Override
public void collectionProcessComplete()
throws AnalysisEngineProcessException {
super.collectionProcessComplete();
try {
psEntities.executeBatch();
conn.commit();
conn.close();
} catch (SQLException e) {
throw new AnalysisEngineProcessException(e.getNextException());
}
}
I have to call e.printStackTrace() (or e.getNextException().printStackTrace()) myself in order to get a message about the error. I am running UIMA 2.3.1. How can it be an Exception stays unreported? Have I messed up some logging options or something? It seems I'm unaware of some fundamental thing about exception handling in UIMA here and I would rather not have to search for exceptions myself without knowing they even have been thrown :-)
Thanks!
Erik
Re: Exception in collectionProcessComplete not reported?
Posted by Erik Fäßler <er...@uni-jena.de>.
Hi Timo,
ah, thank you for your answer. I guess I just should have dug a bit deeper on my own intuition regarding the logger settings. I think I know where the error is (I mean besides the obvious answer "In front of the screen" ;-)). I didn't see it because there are several logger solutions in my current pipeline, it's a bit messy and I did not have time to clean this thing yet. And I know there are some logger settings which are screwed but I did not know it was UIMA (all other messages come through so I wasn't suspicious ;-)).
So thanks for the hint and have nice week! Greetings from Jena...
Erik
Am 20.02.2012 um 10:01 schrieb Timo Boehme:
>
> Am 18.02.2012 13:01, schrieb Erik Fäßler:
>> I had an odd problem when I realized not all of my documents were
>> actually treated by my consumer. I run a traditional CPE with 4
>> threads. After some time of research I came to note that my
>> consumer-AE had an exception thrown which I never saw. The exception
>> is thrown in this collectionProcessComplete method:
>>
>> ...
>> } catch (SQLException e) {
>> throw new AnalysisEngineProcessException(e.getNextException());
>> }
>>
>> I have to call e.printStackTrace() (or
>> e.getNextException().printStackTrace()) myself in order to get a
>> message about the error. I am running UIMA 2.3.1. How can it be an
>> Exception stays unreported? Have I messed up some logging options or
>> something? It seems I'm unaware of some fundamental thing about
>> exception handling in UIMA here and I would rather not have to search
>> for exceptions myself without knowing they even have been thrown :-)
>
> UIMA catches all exceptions reaching it, even runtime exceptions via uncaught exception handler. If you properly initialized the UIMA logging it should report the exceptions (however I cannot tell you how :-) ).
> There is another way to get the exceptions:
> when you created the cpe instance, e.g. like
> CollectionProcessingEngine cpe = UIMAFramework.produceCollectionProcessingEngine( cpeDesc );
>
> you should add an own implementation of StatusCallbackListener via
> cpe.addStatusCallbackListener( cpeStatusListener )
>
> in the StatusCallbackListener there is a method
> entityProcessComplete( CAS _cas, EntityProcessStatus _status )
>
> with _status.isException() and _status.getExceptions() you can get the exceptions occurred during processing and which components were involved (_status.getFailedComponentNames()).
>
>
> Kind regards,
>
> Timo
>
>
> --
>
> Timo Boehme
> OntoChem GmbH
> H.-Damerow-Str. 4
> 06120 Halle/Saale
> T: +49 345 4780474
> F: +49 345 4780471
> timo.boehme@ontochem.com
>
> _____________________________________________________________________
>
> OntoChem GmbH
> Geschäftsführer: Dr. Lutz Weber
> Sitz: Halle / Saale
> Registergericht: Stendal
> Registernummer: HRB 215461
> _____________________________________________________________________
>
Re: Exception in collectionProcessComplete not reported?
Posted by Timo Boehme <ti...@ontochem.com>.
Am 18.02.2012 13:01, schrieb Erik Fäßler:
> I had an odd problem when I realized not all of my documents were
> actually treated by my consumer. I run a traditional CPE with 4
> threads. After some time of research I came to note that my
> consumer-AE had an exception thrown which I never saw. The exception
> is thrown in this collectionProcessComplete method:
>
> ...
> } catch (SQLException e) {
> throw new AnalysisEngineProcessException(e.getNextException());
> }
>
> I have to call e.printStackTrace() (or
> e.getNextException().printStackTrace()) myself in order to get a
> message about the error. I am running UIMA 2.3.1. How can it be an
> Exception stays unreported? Have I messed up some logging options or
> something? It seems I'm unaware of some fundamental thing about
> exception handling in UIMA here and I would rather not have to search
> for exceptions myself without knowing they even have been thrown :-)
UIMA catches all exceptions reaching it, even runtime exceptions via
uncaught exception handler. If you properly initialized the UIMA logging
it should report the exceptions (however I cannot tell you how :-) ).
There is another way to get the exceptions:
when you created the cpe instance, e.g. like
CollectionProcessingEngine cpe =
UIMAFramework.produceCollectionProcessingEngine( cpeDesc );
you should add an own implementation of StatusCallbackListener via
cpe.addStatusCallbackListener( cpeStatusListener )
in the StatusCallbackListener there is a method
entityProcessComplete( CAS _cas, EntityProcessStatus _status )
with _status.isException() and _status.getExceptions() you can get the
exceptions occurred during processing and which components were involved
(_status.getFailedComponentNames()).
Kind regards,
Timo
--
Timo Boehme
OntoChem GmbH
H.-Damerow-Str. 4
06120 Halle/Saale
T: +49 345 4780474
F: +49 345 4780471
timo.boehme@ontochem.com
_____________________________________________________________________
OntoChem GmbH
Geschäftsführer: Dr. Lutz Weber
Sitz: Halle / Saale
Registergericht: Stendal
Registernummer: HRB 215461
_____________________________________________________________________