From: <leg...@at...> - 2003-10-27 17:33:45
|
The following comment has been added to this issue: Author: John Kristian Created: Mon, 27 Oct 2003 11:24 AM Body: I agree it's not an easy call. And it doesn't matter much which way it works, so it's reasonable to choose the low-effort option. You all have better things to do, I'm sure. My example 'unwrap' algorithm wasn't clear, I fear. A rough translation to English would be: a Nestable is merely a wrapper if it contains a cause and no message except the message of its cause. This would apply to any HibernateException, since HibernateException implements org.apache.commons.lang.exception.Nestable. I think it's a Good Thing for classes in an inheritance hierarchy to behave consistently. In this case, it would be good for all classes that extend HibernateException to use the same convention for indicating that they are merely a wrapper. It would be better for all classes that implement Nestable to do likewise. --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-424 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-424 Summary: Exception wrappers should not add a message Type: Patch Status: Unassigned Priority: Minor Project: Hibernate2 Components: core Versions: 2.1 beta 4 Assignee: Reporter: John Kristian Created: Thu, 23 Oct 2003 7:39 PM Updated: Thu, 23 Oct 2003 7:40 PM Description: The attached patch would be an improvement, from my point of view. Exception classes that merely wrap another exception should not add anything to the message. One reason is to simplify the implementation of code like this, which aims to remove such wrappers: if (t instanceof Nestable || t instanceof InvocationTargetException || t instanceof UndeclaredThrowableException) { cause = t.getCause(); if (cause != null) { String message = t.getMessage(); if (message != null && message.length() > 0 && ! message.equals(cause.getMessage())) { return t; } } } else if (t instanceof etc... Such code need not require special cases for Hibernate exceptions, if they refrain from adding to the message (as in the attached patch). --------------------------------------------------------------------- JIRA INFORMATION: This message is automatically generated by JIRA. If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |