myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Koci <martin.kocicak.k...@gmail.com>
Subject Re: [core] Improve error reporting and logging
Date Tue, 11 Jan 2011 20:37:42 GMT
Here are some requirements and additional description:

-- identify every error with unique code:

If error begins with unique prefix like MF or MYFACES, coder can at
first sight recognize framework which is the source of that
error/exception. For example Oracle DB throws ORA- or our company stuff
throws AR- prefixed codes.
Number after that prefix is unique identification of problem. Whole
construct can serve as key for query (for bugzilla, WIKi, ...) or as
simple abbreviation of the problem. Our programmers often say "999
happens" instead of "Unexpected failure of data happens" :)

-- text after error code:

Should not only describe what is wrong but also how to solve it.


-- details section:

This section can contain detailed description of problem. It can have
example of <f:ajax eventName="" />, hyperlink to javaDoc or VDL docs, or
a notice that IDEs mostly don't auto-complete this attribute.
In can look like overkill but those informations are required over and
over again. Especially if I hear the same question like "what is
eventName" and "give me an example" again .... (grrr)
Of course all information can be found elsewhere but to ease
development, every framework should be self-explanatory
This section can by also collapsable as is the part for component tree
already.

-- localization:

all human-readable text should be localizable because coders always read
and think faster in their mother language.


-- references section:

links to bugzilla, mail etc. Should be configurable, for example I want
provide link from error page to our internal bugzilla, not to myfaces
JIRA. Similar case for email address.


-- information about location of problem:

If Facelets VDL is used it is obvious to provide tag, column and line.
But we cannot limit it for facelets only. For example we have one
project that uses pure Java API for View creation and very complex
logic. Then if UIComponent.setId() throws new
IllegalArgumentException("component identifier must not be a zero-length
String"), is very hard to find the cause, if debugging is not available.
Here we can provide information about parent and path to component,
phase id etc. 


Kočičák

Werner Punz píše v Út 11. 01. 2011 v 15:12 +0100:
> ++1
> 
> Werner
> 
> 
> Am 10.01.11 20:06, schrieb Martin Koci:
> >
> > Hi,
> >
> > the most wanted feature which our coders want is more consistent and
> > human-readable error reporting and logging. Here is a example:
> >
> > If user specifies f:ajax without eventName for a component without
> > defaultEventName, myfaces throw a execption:
> >
> > Now (myfaces 2.0.3):
> > eventName could not be defined for f:ajax tag with no wrap mode.
> >
> >
> >
> > Improved (example only; from my copy of myfaces):
> >
> > MF0345: Your ajax tag does not specify eventName and component
> > com.foo.Bazz does not provide the default one. Please use one from
> > available: [change, blur, focus ...]";
> >
> > Tag location: XYZ.xhtml line 56 column 23,<f:ajax  ..... />
> >
> > Component: id: componentId,  class: com.foo.BazzInput, component type:
> > org.renderkit.Input
> >
> > ViewId: YYZ.xhml, located in file system
> > as: /tmp/deploy/weabpp/XYZ.xhtml
> >
> > PhaseId: RENDER_RESPONSE
> >
> > Details: ... a detailed description of this problem + suggestions,
> > example of code.
> >
> > References:
> > #  Click for problem MF0345 in MYFACES knowledge database (hypertext
> > link)
> > # Contact your technology team : mail@to.me
> > # If you think this a bug report it: jira.project.org
> >
> >
> >
> >
> >
> >
> > What do you think about this idea?
> >
> > (I'll describe our requirements and what I found so far in next emails)
> >
> >
> > Regards,
> >
> > Kočičák
> >
> >
> 
> 
> 



Mime
View raw message