[ http://www.stripesframework.org/jira/browse/STS-326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ben Gunter closed STS-326. -------------------------- > Error and message tags produce null pointer exception on Weblogic 9.2 when > used outside of a form tag. > ------------------------------------------------------------------------------------------------------ > > Key: STS-326 > URL: http://www.stripesframework.org/jira/browse/STS-326 > Project: Stripes > Issue Type: Bug > Components: Tag Library > Affects Versions: Release 1.4.2 > Environment: Weblogic 9.2 on Windows 2003 > Reporter: Karl Kedrovsky > Assignee: Tim Fennell > > When <stripes:errors /> or <stripes:messages /> tags are places outside of a > <stripes:form> tag stripes produces a null pointer exception. The stack trace > follows: > java.lang.NullPointerException at > net.sourceforge.stripes.tag.FormTag.getActionBean(FormTag.java:305) at > net.sourceforge.stripes.tag.ErrorsTag.doStartTag(ErrorsTag.java:227) at > jsp_servlet._layout.__small_form._jspService(__small_form.java:179) at > weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225) > at > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) > at > weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:391) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) > at > weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:496) > at > weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:427) > at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:152) at > weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:173) at > net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:122) > at jsp_servlet._web_45_inf._jsp.__login._jsp__tag1(__login.java:205) at > jsp_servlet._web_45_inf._jsp.__login._jspService(__login.java:130) at > weblogic.servlet.jsp.JspBase.service(JspBase.java:34) at > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225) > at > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283) > at > weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:391) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:309) > at > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175) > at > weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:496) > at > weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:245) > at > net.sourceforge.stripes.action.ForwardResolution.execute(ForwardResolution.java:104) > at > net.sourceforge.stripes.controller.DispatcherHelper$7.intercept(DispatcherHelper.java:484) > at > net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:157) > at > net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:107) > at > net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:154) > at > net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:73) > > The JSP (layout) that produced the error is: > <%@ page contentType="text/html;charset=UTF-8" language="java" %> > <%@ taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld" > %> > <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> > <fmt:setBundle basename="StripesResources_fields"/> > <stripes:layout-definition> > <stripes:layout-render name="/layout/default.jsp" > bannerHeading="${bannerHeading}"> > <stripes:layout-component name="contents"> > <center> > <div class="greyBox"> > <div class="greyBoxHdr"> > <p><fmt:message key="${heading}"/></p> > </div> > <div class="greyBoxContent"> > <div id="error"> > <stripes:errors /> > </div> > <div id="message"> > <stripes:messages /> > </div> > ${form} > </div> > </div> > <div class="greyBoxBottom"><img > src="/images/login_box_bottom.gif" width="479" height="4" /></div> > </center> > </stripes:layout-component> > </stripes:layout-render> > </stripes:layout-definition> > The JSP that is rendered by the layout (the bits in ${form}) is: > <%@ taglib prefix="stripes" uri="http://stripes.sourceforge.net/stripes.tld" > %> > <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> > <fmt:setBundle basename="StripesResources_fields"/> > <stripes:layout-render name="/layout/small_form.jsp" siteSection="welcome" > heading="/Login.action.login"> > <stripes:layout-component name="form"> > <stripes:form action="/Login.action" focus="user.username"> > <div class="loginCopyBox"> > <p><strong><fmt:message > key="/Login.action.forgot"/></strong></p> > <p><fmt:message key="user.password"/> - <stripes:link > href="/ForgotPassword.action"><fmt:message > key="global.clickHere"/></stripes:link></p> > <p><fmt:message key="user.username"/> - <stripes:link > href="/ForgotUsername.action"><fmt:message > key="global.clickHere"/></stripes:link></p> > </div> > <div class="loginForm"> > <p><stripes:label for="user.username"/><br /><stripes:text > id="user.username" name="user.username" class="input224"/></p> > <p><stripes:label for="user.password"/><br > /><stripes:password id="user.password" name="user.password" > class="input224"/></p> > </div> > <div class="loginBtn"> > <stripes:image name="login" src="../images/btn_login.jpg" /> > </div> > </stripes:form> > </stripes:layout-component> > </stripes:layout-render> > A work-around for the problem is to move the errors/messages tags to the JSP > that contains the form. The exact same application runs just fine on Tomcat > 5.5.20. -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ Stripes-development mailing list Stripes-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-development