DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17490>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17490 html:messages tag throws non speaking JSPException when key doesn't exist. Summary: html:messages tag throws non speaking JSPException when key doesn't exist. Product: Struts Version: 1.1 Beta 3 Platform: Sun OS/Version: Solaris Status: NEW Severity: Normal Priority: Other Component: Custom Tags AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] the html:messages tag doesn't check the existence of a message for a key Hi, The struts-html:messages tag doesn't check if the message returned by the RequestUtils.message() method is not null. So if the key is not attached to a message the pageContext.setAttribute() throws a NullPointerException (at least with Weblogic7.0) see code in the org.apache.struts.taglib.html.MessagesTag class 1 : public int doStartTag() [...] 2 : // Store the first value and evaluate, or skip the body if none 3 : if (iterator.hasNext()) { 4 : ActionMessage report = (ActionMessage) iterator.next(); 5 : String msg = RequestUtils.message(pageContext, bundle, locale, report.getKey(),report.getValues()); 6 : pageContext.setAttribute(id, msg); if the msg returned in line 5 is null the line 6 throws a NullPointerException java.lang.NullPointerException at weblogic.utils.UnsyncHashtable.put(UnsyncHashtable.java:274) at weblogic.servlet.jsp.PageContextImpl.setAttribute (PageContextImpl.java:128) at org.apache.struts.taglib.html.MessagesTag.doStartTag (MessagesTag.java:203) at jsp_servlet._template.__ecct_45_template._jspService (__ecct_45_template.java:228) at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run (ServletStubImpl.java:945) at weblogic.servlet.internal.ServletStubImpl.invokeServlet (ServletStubImpl.java:332) at weblogic.servlet.internal.ServletStubImpl.invokeServlet (ServletStubImpl.java:376) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:20) at weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.java:27) A second problems appears, it's not the NullPointerException that comes out but a non speaking JSPException. A possible solution could come from the struts-bean:message tag. in the org.apache.struts.taglib.bean.MessageTag class there is the following code : 1 : public int doStartTag() 2 : // Retrieve the message string we are looking for 3 : String message = RequestUtils.message(pageContext, this.bundle,this.localeKey, key, args); 4 : if (message == null) { 5 : JspException e = new JspException(messages.getMessage ("message.message", key)); 6 : RequestUtils.saveException(pageContext, e); 7 : throw e; 8 : } The code part from line 4 to 8 could be added after line 5 of the html:Messages code extract to avoid non speaking JSP Exception. Regards Pascal --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]