Hi Scott,

True, so I can't see any reasonable reasons for this !

Jacques

From: "Scott Gray" <[EMAIL PROTECTED]>
Hi Jacques

A lack of results won't cause the delegator to throw an exception,
assuming the model entity and the query were sound the exception would
come from a problem actually querying the database or table.

Regards
Scott

2008/8/17 Jacques Le Roux <[EMAIL PROTECTED]>:
Maybe this was done to allow cases where an invoice has any tax items ? But
then the message is wrong, it is
  Debug.logError(e, "Trouble getting InvoiceItem list", module);
should be   Debug.logError(e, "Trouble getting tax InvoiceItem list",
module);

My 2 cents

Jacques

From: "Scott Gray" <[EMAIL PROTECTED]>

Thanks David, I guess it's pretty subjective and needs to be looked at
on a larger scale rather than just examining small chunks of code.  I
might put that to one side for now unless I come across anything that
looks like it might obviously cause issues.

One example I came across that did concern me was in the
InvoiceWorker.getInvoiceTaxTotalBd() method where if it has trouble
pulling up the InvoiceItems it just logs an error and returns zero
tax.  Any opinions (anyone) on whether it is a cause for concern and
if so what would be the correct approach?  Throw the
GenericEntityException?

Thanks
Scott

2008/8/15 David E Jones <[EMAIL PROTECTED]>:

As a generality it is important that whenever an exception is caught it
is
handled so that errors don't just "disappear...".

However, there are different valid ways of handling an exception and
sometimes it is best to just log an error or warning and move on,
especially
when the code is isolated such that passing it back to the caller doesn't
make sense, or it doesn't affect program flow or anything else that might
be
done, but it is good to know what happened if anyone digs into a log
anyway.

One way or another the catch clause should:

1. throw another exception
2. return a message (for services and such)
3. add a message to the request or context (for events and such)
4. log the error and move on

-David


On Aug 14, 2008, at 3:08 AM, Scott Gray wrote:

Hi All

While going through looking for the issue Adam mentioned, I'm seeing a
lot of the following:
List orl = null;
try {
 orl = delegator.findByAnd(...);
} catch (GenericEntityException e) {
 Debug.logError(e, module);
}
if (orl != null && orl.size() > 0) {
 ...
}

Shouldn't we always return an error if the delegator throws an
exception rather than continue processing?  In the example above we're
treating an exception as being equivalent to an empty result which
seems a bit funny to me...

Thanks
Scott

2008/8/13 Scott Gray <[EMAIL PROTECTED]>:

Hi Adam,

Did you have any plans to clean these up?  I don't want to start if
you're already on it.

Thanks
Scott

2008/8/13 Adam Heath <[EMAIL PROTECTED]>:

As I've been going thru more ofbiz code, adding generics, I've
discovered a
bunch of the following pattern:

....
List items = delegator.findByAnd(...)
Iterator itemIt = UtilMisc.toIterator(items)
if (itemIt != null && itemIt.hasNext()) {
....

First off, delegator.findByAnd(and findList as well) never return
null.
Ever.  They will return an empty list if nothing is found.  It's only
findOne(and friends) that return null.

Because items is never null, toIterator always returns an iterator.
 So
itemIt is never null.







Reply via email to