Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
1.1.1, 1.2.9, 1.3.8
-
None
-
Operating System: All
Platform: All
-
34604
Description
It would be exceptionally helpful if the Struts project were to standardize
throughout development that all caught exceptions that are to be re-thrown
should contain the root cause unless a clearly stated, specific reason exists to
not do so.
For example, in org.apache.struts.taglib.tiles.InsertTag on any Exception within
doEngTag(), the following occurs:
catch (ServletException e) {
Throwable cause = e;
if (e.getRootCause() != null)
String msg = "ServletException in '" + page + "': " + cause.getMessage();
log.error(msg, e);
throw new JspException(msg);
}
It would be rather simple to do the following for the last line:
throw new JspException(msg, e);
While the root exception message is logged, this information is not available to
an upper-level application layer. For example, if a custom SecurityException is
thrown on a JSP or Tag, important information may be lost in the propogation of
this exception.
I have looked within the 1.2.6 beta codebase (as of today, 25 April 2005) and
the approach remains the same.
Note: I did not choose the "Tiles Framework" for this report's Component
purposefully. In my opinion, it should be a standard coding procedure across
Struts, and possibly other Jakarta projects.
Attachments
Issue Links
- incorporates
-
STR-2173 Better error message for "Exception thrown by getter for property"
- Resolved
-
STR-2896 Exception thrown by InsertTag.doEndTag() does not provide useful message
- Resolved
-
STR-3119 Standardize exception rethrows to contain root cause (initCause)
- Resolved
- is depended upon by
-
STR-786 Make error messages more specific (omnibus issue)
- Reopened
- is duplicated by
-
STR-2495 Tile exceptions should be properly chained
- Closed