Return-Path: Delivered-To: apmail-jakarta-tomcat-user-archive@www.apache.org Received: (qmail 76611 invoked from network); 18 Mar 2004 19:19:03 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 18 Mar 2004 19:19:03 -0000 Received: (qmail 22858 invoked by uid 500); 18 Mar 2004 19:18:21 -0000 Delivered-To: apmail-jakarta-tomcat-user-archive@jakarta.apache.org Received: (qmail 22806 invoked by uid 500); 18 Mar 2004 19:18:20 -0000 Mailing-List: contact tomcat-user-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Tomcat Users List" Reply-To: "Tomcat Users List" Delivered-To: mailing list tomcat-user@jakarta.apache.org Received: (qmail 22622 invoked from network); 18 Mar 2004 19:18:18 -0000 Received: from unknown (HELO devmaster.w3ping.net) (217.126.142.208) by daedalus.apache.org with SMTP; 18 Mar 2004 19:18:18 -0000 Received: from localhost ([127.0.0.1] helo=terra.es ident=foobar) by devmaster.w3ping.net with esmtp (Exim 3.36 #1 (Debian)) id 1B432S-0003Z6-00 for ; Thu, 18 Mar 2004 20:18:44 +0100 Message-ID: <4059F613.5050105@terra.es> Date: Thu, 18 Mar 2004 20:18:43 +0100 From: =?ISO-8859-1?Q?Antonio_Fiol_Bonn=EDn?= User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040312 Debian/1.6-3 X-Accept-Language: es-es, es, fr-fr, fr, en-gb, en-us, en MIME-Version: 1.0 To: Tomcat Users List Subject: Re: What's wrong with this picture. References: <6041E22C-78EF-11D8-B4AD-000393CFE61E@connecties.com> In-Reply-To: <6041E22C-78EF-11D8-B4AD-000393CFE61E@connecties.com> Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms080903060402030305050701" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N --------------ms080903060402030305050701 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit I have never worked with taglibs, but... Your NullPointerException can only be caused because pageContext is null. Can you access the pageContext (I understand it must be a field from TagSupport) *before* doStartTag() is called? You can try moving that line to be the first line *inside* the method. Just a very wild guess. Antonio Fiol Werner van Mook wrote: > Hi all, > > I created a jsp with this tag : > > > > I included a taglib directive and did all things I should do to get > it working. > > The class for this tag is : > > import java.io.IOException; > import java.util.Enumeration; > > import javax.servlet.http.HttpServletRequest; > import javax.servlet.jsp.JspException; > import javax.servlet.jsp.JspWriter; > import javax.servlet.jsp.PageContext; > import javax.servlet.jsp.tagext.TagSupport; > > import util.Message; > > public class DisplayResponse extends TagSupport { > > // The next line is line 54 > Enumeration e = > pageContext.getAttributeNamesInScope(PageContext.REQUEST_SCOPE); > > public int doStartTag() throws JspException { > JspWriter out = pageContext.getOut(); > > try { > if(e.hasMoreElements()) { > out.println((String)e.nextElement()); > } else { > out.println("It has no more elements."); > } > out.println("Just transformed o into message."); > } catch (IOException ioe) { > ioe.printStackTrace(); > } > return SKIP_BODY; > } > } > > If I run this I get a nullPointerException on the line defining the > enumeration. > see : > > > javax.servlet.ServletException > > org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageCont > extImpl.java:864) > > org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContex > tImpl.java:800) > org.apache.jsp.view_jsp._jspService(view_jsp.java:67) > > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) > javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja > va:311) > > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 301) > > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) > javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > > > root cause > java.lang.NullPointerException > tags.DisplayResponse.(DisplayResponse.java:54) > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorA > ccessorImpl.java:39) > > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingCons > tructorAccessorImpl.java:27) > java.lang.reflect.Constructor.newInstance(Constructor.java:274) > java.lang.Class.newInstance0(Class.java:308) > java.lang.Class.newInstance(Class.java:261) > > org.apache.jasper.runtime.TagHandlerPool.get(TagHandlerPool.java:161) > > org.apache.jsp.view_jsp._jspx_meth_ina_displayResponse_0(view_jsp.java: > 78) > org.apache.jsp.view_jsp._jspService(view_jsp.java:59) > > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) > javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja > va:311) > > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 301) > > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) > javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > > > If I would change it to someting like : > > Enumeration e = > ((HttpServletRequest)pageContext.getRequest()).getAttributeNames(); > > I get the expected result. > see : > > message Just transformed o into message. > > > According to the docs getAttributeNamesInScope can only throw : > java.lang.IllegalArgumentException or > java.lang.IllegalStateException > > > So is this a bug? > Or did I miss something? > > > > Werner van Mook > Java Lead Developer / Trainer > Connecties Voor Internet --------------ms080903060402030305050701 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 --------------ms080903060402030305050701--