beehive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew McCulloch" <amccu...@gmail.com>
Subject Re: servlet 2.5 api compat...
Date Fri, 28 Jul 2006 19:04:10 GMT
Chad,

This seems like the right choice.  The Throws clause in the api docs for
Throwable#initCause (J2SE 1.5) says ...
"IllegalStateException<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IllegalStateException.html>-
if this throwable was created with
Throwable(Throwable)<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html#Throwable%28java.lang.Throwable%29>or
Throwable(String,Throwable)<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html#Throwable%28java.lang.String,%20java.lang.Throwable%29>,
or this method has already been called on this throwable.".  I think the
change you are suggesting handles both of these cases correctly.

--Andrew

On 7/28/06, Chad Schoettger <chad.schoettger@gmail.com> wrote:
>
> I've been playing around a bit with the 2.5 servlet api and Beehive,
> just to get a feel for what has changed.  There isn't really all that
> much that causes issues for Beehive at runtime, the only thing I have
> found so far has been a difference in how ServletException and
> JspException work in 2.5.
>
> in the 2.4 servlet api, when you create a new ServletException:
>
> ServletException se = new ServletException(throwable);
>
> the ServletException superclass Throwable does not get its 'initCause'
> method invoked.
>
>
> In the 2.5 servlet api, it does.  There is code in Beehive which does
> the following:
>
> ServletException se = new ServletException(e);
> se.initCause(e);
>
> The second line causes an IllegalStateException in the servlet 2.5 api
> since the cause has already been set via the constructor.  The same is
> true for the JspException class.
>
> Does anyone have an issue with me updating the affected Beehive
> classes to correctly handle this case?  The change would consist of:
>
> ServletException se = new ServletException(e);
> try {
>    se.initCause(e);
> } catch (IllegalStateException ise) {
>   // do nothing, just means 2.5 servlet api is being used.
> }
>
> At this point I'm not proposing we update the servlet api included in
> the <beehive>/servlet/external directory to a 2.5 implementation, just
> that we handle this case correctly for those users who may be
> interested in running beehive on a server which has the 2.5 api.
>
> The following classes would need to be modified:
>
>
> <beehive>/trunk/netui/src/util/org/apache/beehive/netui/internal/ServletUtils
>
> <beehive>/trunk/netui/src/tags-databinding/org/apache/beehive/netui/tags/databinding/ConfigurePager
>
> <beehive>/trunk/netui/src/tags-htmll/org/apache/beehive/netui/tags/AbstractSimpleTag
>
> <beehive>/trunk/netui/src/tags-htmll/org/apache/beehive/netui/tags/ErrorHandling
>
> <beehive>/trunk/netui/src/tags-htmll/org/apache/beehive/netui/tags/HtmlUtils
>
> <beehive>/trunk/netui/src/tags-template/org/apache/beehive/netui/tags/template/Attribute
>
> <beehive>/trunk/netui/src/tags-template/org/apache/beehive/netui/tags/template/IncludeSection
>
> <beehive>/trunk/netui/src/tags-template/org/apache/beehive/netui/tags/template/Template
>
>
>
> - Thanks, Chad
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message