Are you sure the issue is with include, rather than the attribute ID
having changed...?
That is, have you verified that
application.getAttribute("caucho.authenticator") in header.jsp returns
something other than null...?
/Mattias
John Steel wrote (2008-05-02 20:09):
> Hi all,
>
> A recent attempt to upgrade some 3.1.2 Pro servers broke them due to
> some changes in the
> "include" handling of JSP's. The attempt was made to use 3.1.5, which
> failed.
>
> The simplest case of what we are doing:
>
> --------------------------------------------------
> index.jsp:
> <%@ include file='/header.jsp' %>
> <table width='100%' cellPadding='0' cellSpacing='0' border='0'>
> <tr>
> <td class='maintableleft' background='images/left-back.jpg'>
> <%@ include file='/left.jsp' %>
> </td>
> ...
> </tr>
> </table>
> <%@ include file='/footer.jsp' %>
>
> --------------------------------------------------
> header.jsp:
> <%@ page import="java.util.*,
> java.text.*,
> ...%><%
> if (session != null) {
> try {
> if (request.getParameter("logout").equals("true")) {
> DbAuthenticator auth = (DbAuthenticator)
> application.getAttribute("caucho.authenticator");
> if (auth != null) {
> auth.logout(request, response, application,
> request.getUserPrincipal());
> }
> session.invalidate();
> response.sendRedirect("index.jsp");
> }
> } catch (Exception e) {
> }
> }
> PageManager pm = new PageManager(pageContext.getOut());
>
> pm.setName(request.getRequestURL().toString().substring(request.getRequestURL().toString().lastIndexOf('/')
>
> + 1));
> DbAuthenticator auth = (DbAuthenticator)
> application.getAttribute("caucho.authenticator");
> java.security.Principal user = request.getUserPrincipal();
> %><html>
>
> --------------------------------------------------
> left.jsp:
> <table border='0' cellPadding='0' cellSpacing='0' width='130'>
> <tr>
> <td width='10'> </td>
> <td width='120'>
> <%
>
> if (auth.isUserInRole(request, response, getServletContext(), user,
> "MANAGER")) {
> out.print("<tr><td><hr></td></tr>");
> pm.writeSideEntry("summary.jsp", "Summary");
> ...
> pm.writeSideEntry("prices.jsp", "Prices");
> }
> %>
>
> DbAuthenticator is a custom child of
> com.caucho.http.security.JdbcAuthenticator. Its working fine.
> The problem is, in 3.1.5 or later a visit to index.jsp results in:
>
> java.lang.NullPointerException
> at _jsp._index__jsp._jspService(left.jsp:100)
> at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
> at com.caucho.jsp.Page.pageservice(Page.java:578)
> at
> com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:192)
> at
> com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:187)
> at
> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:181)
> at
> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
> at
> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:269)
> at com.caucho.server.port.TcpConnection.run(TcpConnection.java:603)
> at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
> at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
> at java.lang.Thread.run(Thread.java:619)
>
> left.jsp line 100 is
> if (auth.isUserInRole(request, response, getServletContext(), user,
> "MANAGER")) {
>
> If I trace auth and user they are both null at that point.
>
> So, is there something else I should be doing, or should have been doing
> all along (possibly
> related to declaring session scope etc of the variables) or is this
> really a bug?
>
>
> _______________________________________________
> resin-interest mailing list
> [email protected]
> http://maillist.caucho.com/mailman/listinfo/resin-interest
>
>
_______________________________________________
resin-interest mailing list
[email protected]
http://maillist.caucho.com/mailman/listinfo/resin-interest