Throw exceptions disabled temporarily disabled since 2002! (transactionManager.cxx)

Stephan Bergmann sbergman at redhat.com
Thu Jun 11 01:22:21 PDT 2015


On 06/10/2015 10:27 PM, julien2412 wrote:
> Giving a try to https://bugs.documentfoundation.org/show_bug.cgi?id=91988, I
> haven't reproduced the crash but had some warn logs.
> Looking at the source, I read this:
>      256                                         // Help programmer to find
> out, why this exception is thrown!
>      257                                         SAL_WARN( "fwk",
> "TransactionManager...: Owner instance not correctly initialized yet. Call
> was rejected! Normally it's an algorithm error ... wrong use of class!" );
>      258                                         //ATTENTION: temp. disabled
> - till all bad code positions are detected and changed! */
>      259                                         // throw
> css::uno::RuntimeException( "TransactionManager...\nOwner instance not right
> initialized yet. Call was rejected! Normally it's an algorithm error ...
> wrong usin of class!\n", css::uno::Reference< css::uno::XInterface >() );

Given the "Normally it's an algorithm error ... wrong usin [sic] of 
class!" the right thing might also be to replace this with an assert. 
Presumably, digging into fdo#91988 will give you the necessary context 
to decide whether it is a programming error to reach that condition (so 
it should be an assert) or whether it is an exceptional state that can 
only be handled up the call stack (so it should be an exception) (or 
whether the current SAL_WARN+break is actually right after all, but 
which is probably unlikely).

In general, when visiting places in the code littered with exclamation 
marks (that are not negation operators), the best advice is to run 
screaming...


More information about the LibreOffice mailing list