--- On Mon, 4/5/10, Adam Heath <[email protected]> wrote:
> Bob Morley wrote:
> > 
> > Scott Gray-2 wrote:
> >> On 5/04/2010, at 10:54 PM, Adam Heath wrote:
> >>
> >>> Bob Morley wrote:
> >>>> Thanks for that url; very interesting
> indeed.  From what I could tell
> >>>> the
> >>>> set of unit tests that execute are
> littered with failures (or they
> >>>> intentionally cause a lot stack traces due
> to exception).
> >>> I've been trying to reduce the number of
> duplicated errors logged.
> >>> OfBiz is famous of catching an error, logging
> it, then rethrowing it.
> >>> Repeat ad-infinitum.
> >> OfBiz is famous of catching an error, logging it,
> then rethrowing it.
> >> Repeat ad-infinitum.
> >>
> > 
> > Ahh yes; I spotted one simple problem -- 
> > 
> >      [java] Unable to load test suite
> class :
> > org.ofbiz.order.test.CustRequestTest
> >      [java] Exception:
> java.lang.ClassNotFoundException
> >      [java] Message:
> org.ofbiz.order.test.CustRequestTest
> > 
> > Looks like if we have a bad testdef configured, we do
> not bubble this up and
> > it gets lost.  This should probably be failing
> the build ...
> > 
> > Most of the noise seems to come as you guys indicated,
> from negative test
> > cases coupled with the fact that we are logging
> "info".  Here is a pattern
> > from the bottom of a tester --
> >     
>    assertNotNull("Foreign key referential
> integrity is not observed for
> > create (INSERT)", caught);
> >     
>    Debug.logInfo(caught.toString(), module);
> > 
> > The second is explicit rollback and the end of a test
> method which under the
> > covers (if info is turned on) it will create an
> exception and logError with
> > it --
> >     
>    TransactionUtil.rollback(transBegin, null,
> null);
> > 
> > 
> > I will fix the first problem when I get into the
> office tomorrow (as it is
> > not really pressing).  The second thing though,
> wanna consider changing the
> > log4j threshold on the run-tests target to warn? 
> This would cut down on the
> > noise (but not eliminate).
> 
> I just fixed the first.
> 
> The others should have their logging fixed, don't change
> the log level
> for run-tests.
> 
> If low-level code logs an error, and rethrows, then just
> stop logging
> the error.

Another pattern that bugs me:

try {
    ...
} catch (Exception e) {
    Debug.logError(e, "Something went wrong: " + e.getMessage(), module);
}

The e.getMessage isn't necessary - the message will be printed in the stack 
trace.

-Adrian




Reply via email to