tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 39088] - StandardWrapper getRootCause() infinite loop
Date Wed, 04 Oct 2006 09:05:26 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=39088>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39088





------- Additional Comments From wouter.zelle@gmail.com  2006-10-04 02:05 -------
This issue has caused a production incident for us. It was rather tough to debug
given the fact that one would not expect that a getRootCause() method in a
non-Tomcat exception actually implements a (hidden) Tomcat interface. IMHO this
is very bad style.

A recursion detector does not address these issues:
1. Tomcat has no business calling a getRootCause() method in user code. That
method may have a very different contract than what Tomcat expects. It may have
side effects or it may be illegal to call the method in some cases. Because it
is not clear to a user that his getRootCause() method is called by Tomcat and
because exception paths are usually not tested that well, production incidents
are likely to still happen to some users.
2. The user still does not know that he is implementing a hidden Tomcat interface.
3. 20 recursions (or any arbitrary number) of reflection, with calls to a method
of unknown specifications may cause performance issues.

I believe that a similar fix to the one for bug 37038 is the best solution. That
fix would result in code that does not surprise Java developers, without the
problems outlined above. It is also unlikely that it would result in breakage,
since I don't think that it's likely that anyone took advantage of this
'feature' to implement some functionality.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message