Filter illegalstateexception

          hi,
          i am trying to use hit counter in the java servlet tutorial. But I get the following
          error. Please let me know what mistakes i am doing.
          thanks in advance
          thanks
          arock
          <Error> <HTTP> <[WebAppServletContext(8243998,filte
          r,/filter)] Servlet failed with Exception
          java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream
          () after getWriter()
          at weblogic.servlet.internal.ServletResponseImpl.getOutputStream(Servlet
          ResponseImpl.java:137)
          at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseW
          rapper.java:136)
          at weblogic.servlet.jsp.JspWriterImpl.<init>(JspWriterImpl.java:23)
          at weblogic.servlet.jsp.PageContextImpl.<init>(PageContextImpl.java:78)
          at weblogic.servlet.jsp.JspFactoryImpl.getPageContext(JspFactoryImpl.jav
          a:31)
          at jsp_servlet.__sample._jspService(__sample.java:74)
          at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
          at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
          pl.java:265)
          at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
          at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
          va:27)
          at Compress.doFilter(Compress.java:42)
          at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
          va:27)
          at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
          rvletContext.java:2501)
          at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
          pl.java:2204)
          at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
          at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
          >
          

Hi!
          I'm trying to deploy OpenCMS application (downloaded from web as a war
          file) and I got the same exception when running WL6.1. The funny thing
          is that it works (with some magic with XML parser) on WL7.0beta.
          So, I think the problem is in implementation of servlet API. I
          considered using the javax.servlet package from WL7.0b (or from Sun's
          J2EE) but don't know how to force WL to use servlet API implementation
          from MY jar file for MY servlets. I've seen WL in lib/ directory had
          more then one jar with implementation of javax.servlet... The question
          is how the WL choose the right one?
          Any help welcome...
          Regards,
          Bartek
          [email protected]
          Greg wrote:
          > Don't know anything about this tutorial, but it looks like you're trying to create
          > a Stream object after you've already created a Writer object. If you need a Stream
          > object (like for byte streams) comment out the Writer stuff.
          >
          > "arock" <[email protected]> wrote:
          >
          >>
          >>hi,
          >>i am trying to use hit counter in the java servlet tutorial. But I get
          >>the following
          >>error. Please let me know what mistakes i am doing.
          >>
          >>thanks in advance
          >>
          >>
          >>thanks
          >>arock
          >>
          >><Error> <HTTP> <[WebAppServletContext(8243998,filte
          >>r,/filter)] Servlet failed with Exception
          >>java.lang.IllegalStateException: strict servlet API: cannot call getOutputStream
          >>() after getWriter()
          >> at weblogic.servlet.internal.ServletResponseImpl.getOutputStream(Servlet
          >>ResponseImpl.java:137)
          >> at javax.servlet.ServletResponseWrapper.getOutputStream(ServletResponseW
          >>rapper.java:136)
          >> at weblogic.servlet.jsp.JspWriterImpl.<init>(JspWriterImpl.java:23)
          >> at weblogic.servlet.jsp.PageContextImpl.<init>(PageContextImpl.java:78)
          >> at weblogic.servlet.jsp.JspFactoryImpl.getPageContext(JspFactoryImpl.jav
          >>a:31)
          >> at jsp_servlet.__sample._jspService(__sample.java:74)
          >> at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
          >> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
          >>pl.java:265)
          >> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:21)
          >> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
          >>va:27)
          >> at Compress.doFilter(Compress.java:42)
          >> at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
          >>va:27)
          >> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
          >>rvletContext.java:2501)
          >> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
          >>pl.java:2204)
          >> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
          >> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
          >>
          >
          

Similar Messages

  • Filter problem with jsp:forward

    Greetings,
    I was trying to implement compression filter in oc4j. Basically wrap a HttpResponseServletResponseWrapper using a GZipOutputStream for supported browsers. However whenever for eg: I have a.jsp which does jsp:forward page =b.jsp I can see in TCP monitor IllegalStateException response already committed. But I dont see any stack trace in server logs. The buffer size is 2048 and I am pretty sure it did not get filled up before the forward. I would appreciate if anybody has seen such behavior using wrapped response in OC4j(the same code works fine in tomcat and websphere). Also one thing I observed is that for every jsp:include the filter is being called (to handle this I create the wrapper if its not already there and maintain entry count into filter and decrement when I exit filter and finish gzip response when entry count become 0,which works fine). I believe that this is not a part of 2.3 spec.Even in 2.4 spec if the filter config in web.xml is not set to any value by default the filter is supposed to be in request scope. I really appreciate any pointers in resolving this

    I am pasting the stack trace for broken pipe exception. Please let me know if anybody knows the resolution. Please let me know if there is any other way to enable compression of jsp in oc4j in 9 version. The same code works in Jboss/tomacat websphere ! Also from the stack trace we can see that filter is being called for each forward and its not as per 2.3 servlet specification. Even in 2.4 by default the filter is supposed to work at request level.
    Also I have another question oc4j seems to be using hard coded value: if length is more than 100k or so it uses Transfer-Encoding chunked. Is there any clean way of disabling this behaviour for .js files? the reason is for some reason Internet explore does not cache the javascript files properly (sporadically ) when chunked response is used for javascript files.
    4/26/06 4:58 PM: com.evermind.server.http.HttpIOException: Broken pipe
    4/26/06 4:58 PM: at com.evermind.server.http.EvermindServletOutputStream.flush(EvermindServletOutputStream.java:286)
    4/26/06 4:58 PM: at java.io.FilterOutputStream.flush(FilterOutputStream.java:121)
    4/26/06 4:58 PM: at filters.gzip.GzipServletResponseStream.flush(GzipServletResponseStream.java:151)
    4/26/06 4:58 PM: at filters.gzip.GZipServletResponseWrapper.flushBuffer(GZipServletResponseWrapper.java:127)
    4/26/06 4:58 PM: at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:244)
    4/26/06 4:58 PM: at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
    4/26/06 4:58 PM: at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
    4/26/06 4:58 PM: at SecondPage.jspService(_SecondPage.java:83)
    4/26/06 4:58 PM: at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    4/26/06 4:58 PM: at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    4/26/06 4:58 PM: at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    4/26/06 4:58 PM: at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    4/26/06 4:58 PM: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    4/26/06 4:58 PM: at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    4/26/06 4:58 PM: at filters.CookieFilter.processRequest(CookieFilter.java:522)
    4/26/06 4:58 PM: at filters.CookieFilter.validateRequest(CookieFilter.java:127)
    4/26/06 4:58 PM: at filters.CookieFilter.doFilter(CookieFilter.java:51)
    4/26/06 4:58 PM: at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
    4/26/06 4:58 PM: at filters.gzip.GZipFilter.doFilter(GZipFilter.java:176)
    4/26/06 4:58 PM: at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:556)
    4/26/06 4:58 PM: at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    4/26/06 4:58 PM: at com.evermind.server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:240)
    4/26/06 4:58 PM: at com.evermind.server.http.GetParametersRequestDispatcher.forward(GetParametersRequestDispatcher.java:189)
    4/26/06 4:58 PM: at com.evermind.server.http.EvermindPageContext.forward(EvermindPageContext.java:199)
    4/26/06 4:58 PM: at FirstPage.jspService(_FirstPage.java:131)
    4/26/06 4:58 PM: at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    4/26/06 4:58 PM: at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
    4/26/06 4:58 PM: at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
    4/26/06 4:58 PM: at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
    4/26/06 4:58 PM: at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    4/26/06 4:58 PM: at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
    4/26/06 4:58 PM: at filters.CookieFilter.processRequest(CookieFilter.java:522)
    4/26/06 4:58 PM: at filters.CookieFilter.validateRequest(CookieFilter.java:127)
    4/26/06 4:58 PM: at filters.CookieFilter.doFilter(CookieFilter.java:51)
    4/26/06 4:58 PM: at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
    4/26/06 4:58 PM: at filters.gzip.GZipFilter.doFilter(GZipFilter.java:176)
    4/26/06 4:58 PM: at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:556)
    4/26/06 4:58 PM: at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
    4/26/06 4:58 PM: at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
    4/26/06 4:58 PM: at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
    4/26/06 4:58 PM: at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
    4/26/06 4:58 PM: at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
    4/26/06 4:58 PM: at java.lang.Thread.run(Thread.java:479)

  • How can I prevent filter from getting applies to .html page?

    Hi,
    I have a MyFaces filter that I don't want applied to pages ending in ".html". However, upon visiting the "/myapp/index.html" page of my application, I get an internal server error, and the stack trace indicates that the filter is being invoked. How can I prevent such a filter from being applied to ".html" pages? The stack trace and the web.xml file are below.
    Thanks, - Dave
    Error I get when visiting index.html page
    ####<Oct 30, 2008 8:46:44 AM MDT> <Error> <HTTP> <rhonti> <nps-supp-gui-ms-1> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1225378004500> <BEA-101020> <[weblogic.servlet.internal.WebAppServletContext@4f2189 - appName: 'nps_history_gui', name: 'nps_history_gui.war', context-path: '/nps_history_gui'] Servlet failed with Exception
    java.lang.IllegalStateException: ExtensionsFilter not correctly configured. JSF mapping missing. JSF pages not covered. Please see: http://myfaces.apache.org/tomahawk/extensionsFilter.html
    at org.apache.myfaces.renderkit.html.util.AddResourceFactory.throwExtensionsFilterMissing(AddResourceFactory.java:389)
    at org.apache.myfaces.renderkit.html.util.AddResourceFactory.checkEnvironment(AddResourceFactory.java:349)
    at org.apache.myfaces.renderkit.html.util.AddResourceFactory.getInstance(AddResourceFactory.java:279)
    at org.apache.myfaces.webapp.filter.TomahawkFacesContextWrapper.<init>(TomahawkFacesContextWrapper.java:115)
    at org.apache.myfaces.webapp.filter.TomahawkFacesContextFactory.getFacesContext(TomahawkFacesContextFactory.java:85)
    at javax.faces.webapp.FacesServlet.prepareFacesContext(FacesServlet.java:307)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:141)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:525)
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:261)
    at com.myco.nps.im.plugin.NPSIMIntercepter.doFilter(NPSIMIntercepter.java:101)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.myco.nps_history.filters.NoCachingFilter.doFilter(NoCachingFilter.java:30)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3229)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    =================Begin web.xml=======================
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
    <display-name>
    nps_history_gui</display-name>
    <filter>
    <filter-name>extensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
    <init-param>
    <description>Set the size limit for uploaded files.
    Format: 10 - 10 bytes
    10k - 10 KB
    10m - 10 MB
    1g - 1 GB</description>
    <param-name>uploadMaxFileSize</param-name>
    <param-value>100m</param-value>
    </init-param>
    <init-param>
    <description>Set the threshold size - files
    below this limit are stored in memory, files above
    this limit are stored on disk.
    Format: 10 - 10 bytes
    10k - 10 KB
    10m - 10 MB
    1g - 1 GB</description>
    <param-name>uploadThresholdSize</param-name>
    <param-value>100k</param-value>
    </init-param>
    </filter>
    <filter>
    <filter-name>No Caching Filter</filter-name>
    <filter-class>com.myco.nps_history.filters.NoCachingFilter</filter-class>
    </filter>
    <filter>
    <filter-name>SSOFilter</filter-name>
    <filter-class>com.myco.nps.im.plugin.NPSIMIntercepter</filter-class>
    <init-param>
    <param-name>filter_conf_file</param-name>
    <param-value>/export/third-party/etsbea/application_conf/wls_9.2.2/nps_history_gui_conf/nps_im_plugIn.properties</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>extensionsFilter</filter-name>
    <url-pattern>*.jsf</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>extensionsFilter</filter-name>
    <url-pattern>/faces/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>No Caching Filter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>SSOFilter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
    <description>Sets properties of History UI app</description>
    <display-name>HistoryInitServlet</display-name>
    <servlet-name>HistoryInitServlet</servlet-name>
    <servlet-class>com.myco.nps_history.servlets.HistoryInitServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>HistoryInitServlet</servlet-name>
    <url-pattern>/HistoryInitServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>HistoryInitServlet</servlet-name>
    <url-pattern>/refresh</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    </web-app>
    ==================End web.xml=======================

    I got that error when using the request URL /myapp/ or /myapp/index.html.
    Regarding,
    At any way, you should map the ExtensionsFilter on the FacesServlet rather than on any url-pattern. Could you elaborate on what you mean? Maybe with an example?
    Thanks, - Dave

  • Is it possible to redirect in a filter After the doChain?

    Hello all,
    I have a filter configured...
      <filter>
        <filter-name>Hibernate Session Filter</filter-name>
        <filter-class>com.test.HibernateSessionFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>Hibernate Session Filter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
      </filter-mapping>... in my Web.xml file.
    I'm using this filter to implement the Hibernate "Session in View" notion. This is where a suitable interceptor (filter for me!) grabs the request /response on the way in and starts a hibernate session... then your servlets do whatever it is they do (which may/may not involve hibernate)... then on the way out the filter commits the transaction and closes the session.
    More can be read about this here...
    http://www.hibernate.org/43.html
    ... but the most interesting bit is really the filter itself:
    public class HibernateSessionRequestFilter implements Filter {
        private static Log log = LogFactory.getLog(HibernateSessionRequestFilter.class);
        private SessionFactory sf;
        public void doFilter(ServletRequest request,
                             ServletResponse response,
                             FilterChain chain)
                throws IOException, ServletException {
            try {
                log.debug("Starting a database transaction");
                sf.getCurrentSession().beginTransaction();
                // Call the next filter (continue request processing)
                chain.doFilter(request, response);
                // Commit and cleanup
                log.debug("Committing the database transaction");
                sf.getCurrentSession().getTransaction().commit();
            } catch (StaleObjectStateException staleEx) {
                log.error("This interceptor does not implement optimistic concurrency control!");
                log.error("Your application will not work until you add compensation actions!");
                // Rollback, close everything, possibly compensate for any permanent changes
                // during the conversation, and finally restart business conversation. Maybe
                // give the user of the application a chance to merge some of his work with
                // fresh data... what you do here depends on your applications design.
                throw staleEx;
            } catch (Throwable ex) {
                // Rollback only
                ex.printStackTrace();
                try {
                    if (sf.getCurrentSession().getTransaction().isActive()) {
                        log.debug("Trying to rollback database transaction after exception");
                        sf.getCurrentSession().getTransaction().rollback();
                } catch (Throwable rbEx) {
                    log.error("Could not rollback transaction after exception!", rbEx);
                // Let others handle it... maybe another interceptor for exceptions?
                throw new ServletException(ex);
        public void init(FilterConfig filterConfig) throws ServletException {
            log.debug("Initializing filter...");
            log.debug("Obtaining SessionFactory from static HibernateUtil singleton");
            sf = HibernateUtil.getSessionFactory();
        public void destroy() {}
    }This all works well except when there's a hibernate exception! When there is an exception I'd like to trap the error and redirect the user to an error page showing some text.. or do something informative. The comment in the sample code "// Let others handle it... " ain't very helpful!
    When I try to do a redirect/forward I get illegalStateExceptions (?because the response is already committed??) Is there some way I can manage the response being committed? I'm not very clear on how the header states/'response flush' actually happens. I've had a rummage here and see many similar posts, but they all seem to refer to redirection Before the doChain method... whereas I want to redirect after that method call.
    Thanks in advance for any advice.

    Nope! Not yet. I tried doing a simple ResponseWrapper (just to mess with the response output, inserting text here and there...
    import java.io.PrintWriter;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpServletResponseWrapper;
    class HtmlResponseWrapper
    extends HttpServletResponseWrapper
      // A response must provide a PrintWriter and a ServletOutputStream.  So we
      // create new ones here, that uses our HtmlServletOutputStream instead of the
      // default ones...
      private PrintWriter printWriter;
      private HtmlServletOutputStream servletOutputStream;
      public HtmlResponseWrapper(
          ServletResponse servletResponse,
          ServletRequest request,
          String menuInsertMarker,
          String crumbInsertMarker)
      throws java.io.IOException
        // Run the constructor on HttpServletResponseWrapper
        super((HttpServletResponse) servletResponse);
        // Generate the appropriate ServletOutputStream/PrintWriter from the inbound
        // response...
        servletOutputStream = new HtmlServletOutputStream(
            servletResponse.getOutputStream(),
            request,
            menuInsertMarker,
            crumbInsertMarker);
        printWriter = new PrintWriter(servletOutputStream);
      public ServletOutputStream getOutputStream() throws java.io.IOException {
        return servletOutputStream;
      public PrintWriter getWriter() throws java.io.IOException {
        return printWriter;
    }... and that worked well. There's lots of examples of this kind of thing on the web. What I need to do now is understand when status changes, buffers get flushed etc. so I can override more than just the getOutputStream and getWriter methods, to keep my request alive until it gets back to the hibernate filter.
    Hoped to do it over Christmas... but maybe in the New Year!
    Once again - if anyone has any pointers - much appreciated!
    Rgds,
    T.

  • PLEASE HELP ME!!! java.lang.IllegalStateException

    I need Help, im encountering this Exception and i dont know what to do, can any Help me to resolve this problem.... Any help is greatly appreciated
    /HERE'S MY CODE-----------------------------------------
    String fileName = "Sample";
    System.out.println("Download Word Document");
    System.out.println(session.getAttribute("data"));
    // set the header details
    int id = Integer.parseInt(String.valueOf(session.getAttribute("data")));
    System.out.println("ID is: " + id);
    try {//set the header details
    ph.gov.da.finalstandards.daos.DAOFacade.file(id);
    response.setContentType("application/msword");
    //response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
    //set the content type to related file
    javax.servlet.ServletOutputStream o = response.getOutputStream();
    InputStream inStream = new BufferedInputStream(new FileInputStream(
    "c:\\tempWordOutput.doc"));
    // set buffer size. Each attempt to read the file will use
    // specified number of bytes
    byte[] buf = new byte[4 * 1024];
    int bytesRead = 0;
    while ((bytesRead = inStream.read(buf)) != -1) {
    o.write(buf, 0, bytesRead);
    o.write(id);
    o.flush();
    o.close();
    } catch (Exception e) {
    e.printStackTrace();
    %>
    [4/20/07 9:26:13:265 CST] 7f007f0 SystemErr R java.lang.IllegalStateException
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at java.lang.Throwable. (Throwable.java)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.legacy.impl.PortletResponseImpl.setHeader(PortletResponseImpl.java:475)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at org.apache.jsp._finalPage._jspService(finalPage.jsp :63)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:364)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:700)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:798)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:531 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:546 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1030)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:251)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.struts.base.BaseImplUtil.include(BaseImplUtil.java:1229)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsUtil.include(WpsStrutsUtil.java:1888)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsViewJspCommand.includeURL(WpsStrutsViewJspCommand.java:170)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsViewJspCommand.execute(WpsStrutsViewJspCommand.java:145)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsUtil.executeCommand(WpsStrutsUtil.java:1223)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsUtil.executeCommand(WpsStrutsUtil.java:1141)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsUtil.executeSavedCommand(WpsStrutsUtil.java:1067)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsPortlet.doService(WpsStrutsPortlet.java:1121)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.portlets.struts.WpsStrutsPortlet.doView(WpsStrutsPortlet.java:1162)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at org.apache.jetspeed.portlet.PortletAdapter.service(PortletAdapter.java:154)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at org.apache.jetspeed.portlet.Portlet._dispatch(Portlet.java:744)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at org.apache.jetspeed.portlet.Portlet.access$100(Portlet.java:88)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at org.apache.jetspeed.portlet.Portlet$Context.callPortlet(Portlet.java:899)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.legacy.cmpf.impl.PortletFilterManager.doFilter(PortletFilterManager.java:253)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at org.apache.jetspeed.portlet.Portlet.dispatch(Portlet.java:636)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at org.apache.jetspeed.portlet.Portlet.doGet(Portlet.java:510)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.legacy.cache.CacheablePortlet.service(CacheablePortlet.java:352)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at org.apache.jetspeed.portlet.Portlet.service(Portlet.java:491)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:562 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1030)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:251)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.legacy.invoker.impl.PortletInvokerImpl.callMethod(PortletInvokerImpl.java:466)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.legacy.invoker.impl.PortletInvokerImpl.render(PortletInvokerImpl.java:135)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.legacy.PortletContainerImpl.callPortletMethod(PortletContainerImpl.java:1378)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.legacy.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:386)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.PortletContainerImpl.doRenderPortlet(PortletContainerImpl.java:428)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:102)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.pe.pc.PortletContainer.renderPortlet(PortletContainer.java:95)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.PortletHolder.render(PortletHolder.java:87)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.tags.PortletRenderTag.doStartTag(PortletRenderTag.java:151)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at org.apache.jsp._Control._jspService(Control.jsp :176)
    [4/20/07 9:26:13:578 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:364)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:700)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:798)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1025)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:251)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.skins.Default.render(Default.java:70)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.SkinTemplate.render(SkinTemplate.java:75)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.elements.Component.render(Component.java:906)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.elements.Control.render(Control.java:210)
    [4/20/07 9:26:13:593 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.Composition.render(Composition.java:2747)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at org.apache.jsp._UnlayeredContainer_2D_V._jspService(UnlayeredContainer-V.jsp :12)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:364)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:700)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:798)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1025)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:625 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:251)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.skins.Default.render(Default.java:70)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.SkinTemplate.render(SkinTemplate.java:75)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.elements.Component.render(Component.java:906)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.elements.SingleEntryContainer.render(SingleEntryContainer.java:207)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.tags.CompositionRenderTag.doStartTag(CompositionRenderTag.java:318)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at org.apache.jsp._LayeredContainer._jspService(LayeredContainer.jsp :176)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:364)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:700)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:798)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1025)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:251)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.skins.Default.render(Default.java:70)
    [4/20/07 9:26:13:640 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.SkinTemplate.render(SkinTemplate.java:75)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.elements.Component.render(Component.java:906)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.composition.elements.SingleEntryContainer.render(SingleEntryContainer.java:207)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.tags.CompositionRenderTag.doStartTag(CompositionRenderTag.java:318)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at org.apache.jsp._Home._jspService(Home.jsp :2)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:364)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:700)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:798)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1025)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:251)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.screens.Default.render(Default.java:73)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.ScreenTemplate.render(ScreenTemplate.java:64)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.tags.ScreenRenderTag.doStartTag(ScreenRenderTag.java:69)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at org.apache.jsp._Default._jspService(Default.jsp :572)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:656 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:364)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:700)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:798)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1025)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:251)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.handleRequest(DispatcherServiceImpl.java:89)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.DispatcherServiceImpl.include(DispatcherServiceImpl.java:50)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.wps.services.dispatcher.Dispatcher.include(Dispatcher.java:44)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.themes.Default.render(Default.java:129)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.templates.ThemeTemplate.render(ThemeTemplate.java:71)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.Servlet.callPortal(Servlet.java:817)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.wps.engine.Servlet.doGet(Servlet.java:484)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    [4/20/07 9:26:13:671 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76)
    [4/20/07 9:26:13:687 CST] 7f007f0 SystemErr R at com.ibm.wps.mappingurl.impl.URLAnalyzer.doFilter(URLAnalyzer.java:186)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1021)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:566)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:198)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:80)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:214)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:615)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.http.HttpConnection.run(HttpConnection.java)
    [4/20/07 9:26:13:703 CST] 7f007f0 SystemErr R at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java)

    Regarding with downloading of file, do i need to use apache's HWPF to generate Word File???

  • Exporting a PDF from an ATG servlet: IllegalStateException: Response already committed

    High-level question
    When a custom servlet in my ATG servlet pipeline writes a PDF document into the HTTP response output stream, although the PDF is delivered to the user's client browser successfully, an error is logged on the server: Servlet failed with Exception  java.lang.IllegalStateException: Response already committed".  Why does this occur?
    Details
    My ATG 10.1.2 application has a requirement to be able to generate and return to the client browser a PDF document when a particular button on the site is clicked.
    Although I'm not sure whether or not it's an ATG best practice, the approach that I landed on for this was to insert a new custom servlet, "PdfExportServlet", into the ATG servlet pipeline.  The PdfExportServlet, for requests that it determines are PDF requests and decides to handle, generates the PDF content (using the Jasper Reports engine), and writes the PDF content to the HTTP response output stream.  Here's the relevant portion of the code:
    response.setContentType("application/pdf");
    // (...Code that generates a JasperPrint object with the PDF content...)
    final byte[] pdfBinaryContent = JasperExportManager.exportReportToPdf(jasperPrint);
    response.setContentLength(pdfBinaryContent.length);
    final ServletOutputStream outputStream = response.getOutputStream();
    outputStream.write(pdfBinaryContent);
    outputStream.flush();
    outputStream.close();
    This works fine, and the PDF does display in the client browser.  However, an error is also logged in the application's log file on the server:
    <WL-101020> <[ServletContext@1369332778[app:storeFront module:shop path:/shop spec-version:2.5]] Servlet failed with Exception
    java.lang.IllegalStateException: Response already committed
        at weblogic.servlet.internal.ServletResponseImpl.objectIfCommitted(ServletResponseImpl.java:1631)
        at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:637)
        at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:602)
        at weblogic.servlet.FileServlet.findSource(FileServlet.java:269)
        at weblogic.servlet.FileServlet.doGetHeadPost(FileServlet.java:191)
        at weblogic.servlet.FileServlet.service(FileServlet.java:173)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
        at atg.servlet.GenericFilterService.doFilterChain(GenericFilterService.java:621)
    A frustrating thing about this error which had made it difficult to troubleshoot is that it does not occur on my local development PC; this log message only appears when the application is running on one of our pre-production or production servers.  This has made trying to rapidly iterate through multiple possible solutions problematic, as each change to the code requires a fresh deployment to our shared pre-production server, which is time-consuming.
    I have tried the following variations on the above code, neither of which has produced a change in the manifestation of the issue (the error message appearing in the log):
    Added a call to response.flushBuffer() after the call to outputStream.close(), on the theory that this might serve to notify downstream servlets that the request has already been committed and no further attempts to modify and/or commit the request should be made.
    Removed the calls to outputStream.flush() and outputStream.close(), on the theory that some downstream servlet pipeline member (TailPipelineServlet?) might be responsible for closing out the outputStream, and trying to do that prematurely was responsible for the error.
    I also so far haven't found anything relevant in the ATG/Oracle documentation that might provide a clue as to what's going on here, or what the general best practice is regarding having a custom servlet in the ATG pipeline that outputs to the response's outputStream.
    Any advice regarding the root cause of this error and/or what should be done to fix it would be most welcome!
    Thanks,
    -Jon

    Here's the full stack trace from the log (which includes the PdfExportServlet):
    <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1386007041311> <WL-101020> <[ServletContext@1369332778[app:storeFront module:shop path:/shop spec-version:2.5]] Servlet failed with Exception
    java.lang.IllegalStateException: Response already committed
    at weblogic.servlet.internal.ServletResponseImpl.objectIfCommitted(ServletResponseImpl.java:1631)
    at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:637)
    at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:602)
    at weblogic.servlet.FileServlet.findSource(FileServlet.java:269)
    at weblogic.servlet.FileServlet.doGetHeadPost(FileServlet.java:191)
    at weblogic.servlet.FileServlet.service(FileServlet.java:173)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
    at atg.servlet.GenericFilterService.doFilterChain(GenericFilterService.java:621)
    at atg.servlet.GenericFilterService.handleDoFilter(GenericFilterService.java:484)
    at atg.servlet.GenericFilterService.doFilter(GenericFilterService.java:431)
    at atg.filter.ConditionalDelegatingFilter.doFilter(ConditionalDelegatingFilter.java:113)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
    at atg.service.configuration.ResponseWrappingConfiguration.invokeFilterChainWithPossibleWrapping(ResponseWrappingConfiguration.java:457)
    at atg.servlet.pipeline.TailPipelineServlet.service(TailPipelineServlet.java:174)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at com.mycompany.purchase.PdfExportServlet.service(PdfExportServlet.java:73)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.DispatcherPipelineServletImpl.service(DispatcherPipelineServletImpl.java:275)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.endeca.assembler.AssemblerPipelineServlet.service(AssemblerPipelineServlet.java:442)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.http.CookieBufferServlet.service(CookieBufferServlet.java:119)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.userprofiling.ExpiredPasswordServlet.service(ExpiredPasswordServlet.java:378)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.MimeTyperPipelineServlet.service(MimeTyperPipelineServlet.java:228)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.droplet.DropletEventServlet.service(DropletEventServlet.java:657)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.commerce.order.CommerceCommandServlet.service(CommerceCommandServlet.java:150)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.commerce.promotion.PromotionServlet.service(PromotionServlet.java:213)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.PipelineableServletImpl.service(PipelineableServletImpl.java:320)
    at com.mycompany.browse.EndecaSessionStateTrackerServlet.service(EndecaSessionStateTrackerServlet.java:97)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.userprofiling.AccessControlServlet.service(AccessControlServlet.java:696)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.sessionsaver.SessionSaverServlet.service(SessionSaverServlet.java:2447)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.userprofiling.PageEventTriggerPipelineServlet.service(PageEventTriggerPipelineServlet.java:191)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.multisite.SiteSessionEventTriggerPipelineServlet.service(SiteSessionEventTriggerPipelineServlet.java:161)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.userprofiling.SessionEventTrigger.service(SessionEventTrigger.java:512)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.userprofiling.ProfilePropertyServlet.service(ProfilePropertyServlet.java:230)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at com.mycompany.servlet.pipeline.ThreadNameServlet.service(ThreadNameServlet.java:89)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.userprofiling.ProfileRequestServlet.service(ProfileRequestServlet.java:460)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.DynamoPipelineServlet.service(DynamoPipelineServlet.java:491)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.URLArgumentPipelineServlet.service(URLArgumentPipelineServlet.java:302)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.PathAuthenticationPipelineServlet.service(PathAuthenticationPipelineServlet.java:392)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.security.ThreadUserBinderServlet.service(ThreadUserBinderServlet.java:113)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.dtm.TransactionPipelineServlet.service(TransactionPipelineServlet.java:234)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.SecurityServlet.service(SecurityServlet.java:195)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.multisite.SiteContextPipelineServlet.service(SiteContextPipelineServlet.java:448)
    at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
    at atg.servlet.pipeline.HeadPipelineServlet.passRequest(HeadPipelineServlet.java:1271)
    at atg.servlet.pipeline.HeadPipelineServlet.service(HeadPipelineServlet.java:952)
    at atg.servlet.pipeline.PipelineableServletImpl.service(PipelineableServletImpl.java:272)
    at atg.filter.dspjsp.PageFilter.innerDoFilter(PageFilter.java:349)
    at atg.filter.dspjsp.PageFilter.doFilter(PageFilter.java:208)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3739)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3705)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2282)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2181)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

  • Java.lang.IllegalStateException: Pool not open

    We are getting an error declaring Pool not open on our GIS mapping application. The queries that seem to generate the error are looking for a Tax Key number in another SQL Server database using the MS SQL Server JDBC 2.0 driver (sqljdbc4.jar) Shown below is a snippet from the log files. Has anyone seen this pool not open error and if so how did you remedy it. I don't know too much about connection pooling (C3P0 and the like), but if you think that is an answer, I'd appreciate any help in how/where such a pool is setup.
    Thanks in advance.
    Jim
    Tue Apr 06 07:55:45 CDT 2010] aims search took 204
    [Tue Apr 06 07:56:13 CDT 2010] Apr 6, 2010 7:56:13 AM com.moximedia.aims.SqlConnection initialize
    INFO: Initialized SqlConnection pool waukeshaSql
    Apr 6, 2010 7:56:16 AM com.moximedia.aims.SqlConnection initialize
    INFO: Initialized SqlConnection pool waukeshaSql
    Apr 6, 2010 8:04:30 AM com.moximedia.aims.SqlConnection initialize
    INFO: Initialized SqlConnection pool waukeshaSql
    database search took 43391
    [Tue Apr 06 08:05:13 CDT 2010] aims search took 172
    [Tue Apr 06 08:05:49 CDT 2010] Apr 6, 2010 8:05:49 AM com.moximedia.aims.pdf.Template generate
    INFO: Alias: http://maps.waukeshacounty.gov/output/WaukIMFpub_prdarcims22763412324.png
    database search took 188
    [Tue Apr 06 08:06:42 CDT 2010] aims search took 250
    [Tue Apr 06 08:07:55 CDT 2010] Apr 6, 2010 8:07:55 AM com.moximedia.aims.pdf.Template generate
    INFO: Alias: http://maps.waukeshacounty.gov/output/WaukIMFpub_prdarcims38562288336.png
    Apr 6, 2010 8:08:54 AM com.moximedia.aims.SqlConnection initialize
    INFO: Initialized SqlConnection pool waukeshaSql
    System Error: property 'layerName' is not configured properly for layer Land Divisions in layer-config.xml
    [Tue Apr 06 08:12:28 CDT 2010] Apr 6, 2010 8:12:28 AM com.moximedia.aims.SqlConnection initialize
    INFO: Initialized SqlConnection pool waukeshaSql
    ServletExec: caught exception - javax.servlet.ServletException: javax.servlet.ServletException: java.lang.IllegalStateException: Pool not open
    [Tue Apr 06 08:13:02 CDT 2010] javax.servlet.ServletException: javax.servlet.ServletException: java.lang.IllegalStateException: Pool not open
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SEFilterChain.doFilter(SEFilterChain.java:118)
    [Tue Apr 06 08:13:02 CDT 2010] at com.moximedia.aims.servlet.filter.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:58)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SEFilterChain.doFilter(SEFilterChain.java:60)
    [Tue Apr 06 08:13:02 CDT 2010] at net.geocortex.imf.security.http.AuthorizationFilter.doFilter(AuthorizationFilter.java:147)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SEFilterChain.doFilter(SEFilterChain.java:60)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.ApplicationInfo.filterApplRequest(ApplicationInfo.java:2573)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.ApplicationInfo.processApplRequest(ApplicationInfo.java:2254)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.ServerHostInfo.processApplRequest(ServerHostInfo.java:1019)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.ServletExec.ProcessRequest(ServletExec.java:1487)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.ServletExec.ProcessRequest(ServletExec.java:1363)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.ServletExecService.processServletRequest(ServletExecService.java:168)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.ServletExecService.Run(ServletExecService.java:205)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.HttpServerRequest.run(HttpServerRequest.java:648)
    [Tue Apr 06 08:13:02 CDT 2010] Caused by: javax.servlet.ServletException: java.lang.IllegalStateException: Pool not open
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.JspPageContext.handlePageException(JspPageContext.java:450)
    [Tue Apr 06 08:13:02 CDT 2010] at pagecompile._sites._waukesha._jsp._wauParcelQuerySearchResults_xjsp._jspService(_wauParcelQuerySearchResults_xjsp.java:810)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.JspHttpJspPage.service(JspHttpJspPage.java:41)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.JspServlet.service(JspServlet.java:1069)
    [Tue Apr 06 08:13:02 CDT 2010] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SERequestDispatcher.forwardServlet(SERequestDispatcher.java:628)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SERequestDispatcher.forward(SERequestDispatcher.java:280)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SERequestDispatcher.forward(SERequestDispatcher.java:211)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SERequestDispatcher.internalForward(SERequestDispatcher.java:123)
    [Tue Apr 06 08:13:02 CDT 2010] at com.newatlanta.servletexec.SEFilterChain.doFilter(SEFilterChain.java:96)
    [Tue Apr 06 08:13:02 CDT 2010] ... 12 more
    [Tue Apr 06 08:13:02 CDT 2010] Caused by: java.lang.IllegalStateException: Pool not open
    [Tue Apr 06 08:13:02 CDT 2010] at org.apache.commons.pool.BaseObjectPool.assertOpen(BaseObjectPool.java:78)
    [Tue Apr 06 08:13:02 CDT 2010] at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:916)
    [Tue Apr 06 08:13:02 CDT 2010] at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:80)
    [Tue Apr 06 08:13:02 CDT 2010] at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:180)
    [Tue Apr 06 08:13:02 CDT 2010] at pagecompile._sites._waukesha._jsp._wauParcelQuerySearchResults_xjsp._jspService(_wauParcelQuerySearchResults_xjsp.java:384)

    My guess would be that this is not a jdbc error.
    First there is no SQLException.
    Second IllegalStateException is something that can occur in Servlet use for various reasons.
    Perhaps you have other information that suggests it can only be JDBC?

  • Problem with applying filter?

    Hello All,
      I am facing problem with filter.
      I am developing a smart sunc application using
      following BAPIs.
           GetList          MEREP_CONTACT_GETLIST        
           GetDetail        MEREP_CONTACT_GETDETAIL      
           Create           MEREP_CONTACT_CREATE         
           Modify           MEREP_CONTACT_MODIFY         
           Delete           MEREP_CONTACT_DELETE         
      I am using person number as filtering criteria.
      When i use emulator then it works properly.
      But at the MI client it does not seem to be working
      as all records are getting downloaded.
      Can anyone help me in this?
      Thanks in advacne.

    Hello Kishor,
    I am now getting following exceptions.
    [20060713 09:38:45:281] E [MI/Smartsync             ] Error while Smart Sync inbound processing: java.lang.IllegalStateException: No field available :ReusableFieldDescriptorIt [rowDescriptor=cZCONTACTSB_010, index=3]
    java.lang.IllegalStateException: No field available :ReusableFieldDescriptorIt [rowDescriptor=cZCONTACTSB_010, index=3]
         at com.sap.ip.me.smartsync.syncIn.processors.InternalRowProcessor.setNextFieldWithWriter(InternalRowProcessor.java:138)
         at com.sap.ip.me.smartsync.syncIn.processors.RowProcessorManager$RowProcessorDispatcher.setNextField(RowProcessorManager.java:409)
         at com.sap.ip.me.smartsync.syncIn.SaxSyncInProcessor$4.characters(SaxSyncInProcessor.java:730)
         at com.sap.ip.me.xmlParser.MIXMLEventHandlerManager.characters(MIXMLEventHandlerManager.java:72)
         at com.sap.ip.me.xmlParser.MIXMLParser.sendCharacters(MIXMLParser.java:263)
         at com.sap.ip.me.xmlParser.MIXMLParser.parse(MIXMLParser.java:158)
         at com.sap.ip.me.smartsync.syncIn.SaxSyncInProcessor.processSyncInMessage(SaxSyncInProcessor.java:87)
         at com.sap.ip.me.smartsync.syncIn.SyncInRuntimeImpl.processSyncInMessage(SyncInRuntimeImpl.java:250)
         at com.sap.ip.me.smartsync.core.SmartSyncRuntimeImpl.process(SmartSyncRuntimeImpl.java:344)
         at com.sap.ip.me.smartsync.core.SmartSyncRuntimeManager.process(SmartSyncRuntimeManager.java:214)
         at com.sap.ip.me.smartsync.core.SyncAdapter.process(SyncAdapter.java:56)
         at com.sap.ip.me.sync.SyncManagerImpl.processSingleContainer(SyncManagerImpl.java:160)
         at com.sap.ip.me.sync.SyncManagerMerger.processInboundContainers(SyncManagerMerger.java:166)
         at com.sap.ip.me.sync.SyncManagerImpl.processSyncCycle(SyncManagerImpl.java:709)
         at com.sap.ip.me.sync.SyncManagerImpl.syncForUser(SyncManagerImpl.java:1142)
         at com.sap.ip.me.sync.SyncManagerImpl.processSynchronization(SyncManagerImpl.java:774)
         at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:402)
         at com.sap.ip.me.sync.SyncManagerImpl.synchronizeWithBackend(SyncManagerImpl.java:285)
         at com.sap.ip.me.api.sync.SyncManager.synchronizeWithBackend(SyncManager.java:79)
         at com.sap.ip.me.apps.jsp.Home$SyncRunnable.run(Home.java:447)
         at java.lang.Thread.run(Thread.java:534)
    regards,
    Abhijit

  • Is a Servlet-Filter which serializes requests in the same user session ok?

    The Servelt specification states that the Web-Application is itself responsible for synchronizing access to HttpSessions. It is from the serversite not possible to prevent multiple threads to access the same HttpSession (i.e. the user could always open a second window, retransmit a form etc). My assumption is that while this does not happen often it can happen and therefore I think each access to the HttpSession must be synchronized. For a further discussion see http://forum.java.sun.com/thread.jsp?forum=4&thread=169872 .
    Concurrent programming is generally complicated and errorprone. At least in developing JSPs it is inconvenient and easy to forget. My Web-App uses often HttpSession and it can be used in different not predefined places, so I had the idea to implement a ServletFilter which serializes threads which happen in the same session. This involves certainly some overhead. However for the advantages of easier code maintains and higher consistency I am ready to pay this overhead.
    My question is generally what you think of this approach and second whether the way I implemented the Filter works.
    The Filter actually generates for each Request an HttpServletRequestWrapper which intercepts calls to getSession and on call aquires a Lock so that other threads have to wait for the same Session. The lock is released when the doFilter method of the Filter returns. So threads run concurrently until the first access to the Session and from there they are serialized until the end of the Request.
    For the details I will give the code for the Filter and the Wrapper (that?s all the code needed except the ReentrantLock which is Doug Lea?s implementation http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html )
    the Filter
    public class SessionThreadFilter implements Filter
      public static final String MUTEXT_IN_SESSION_KEY = "org.jaul.filter.SessionThreadFilter.MUTEX";
      //constructor, init, destroy methods do nothing
      public void doFilter(ServletRequest reqIn,ServletResponse res,FilterChain filterChain)
        throws IOException, ServletException
        //if req not instanceof of HttpRequest don't do anything
        if (!(reqIn instanceof HttpServletRequest))
          filterChain.doFilter(reqIn, res);
        } else
          HttpServletRequest req = (HttpServletRequest) reqIn;
          //We use a HttpRequestWrapper each time a user accesses
          //through this
          //Wrapper a Session is Lock is aquired. The filter method returns
          //the lock if it exists is released
          //each thread needs it's own wrapper so the wrapper itself
          //doesn't have to be synchronized
          SessionThreadRequestWrapper wrapper = new SessionThreadRequestWrapper(req);
          try{
            filterChain.doFilter(wrapper, res);
          }finally{
            ReentrantLock lock = wrapper.getLock();
            if (lock != null && lock.holds() != 0)
                       lock.release(lock.holds());
    the Wrapper
    final public class SessionThreadRequestWrapper extends HttpServletRequestWrapper {
      private ReentrantLock lock = null;
       * Constructor for SessionThreadRequestWrapper.
       * @param arg0
      public SessionThreadRequestWrapper(HttpServletRequest req){
        super(req);
       * @see javax.servlet.http.HttpServletRequest#getSession()
      public HttpSession getSession(){
        return getSession(true);
       * @see javax.servlet.http.HttpServletRequest#getSession(boolean)
      public HttpSession getSession(boolean construct){
        //this will get the session an the lock
        HttpSession session = getLockFromSession(construct);
        if (session == null) return null;
        //get a lock on the mutex
        try{
          lock.acquire();
        } catch (InterruptedException e){
          throw new IllegalStateException("Interrupted while thread waiting for session");
        //now we check again if the session is still valid
        try{
          session.getAttribute(SessionThreadFilter.MUTEXT_IN_SESSION_KEY);
        } catch (IllegalStateException e){
          //again we go recusively but first release the lock
          lock.release();
          lock = null;
          return getSession(construct);
        //after you got the lock you can return the session
        return session;
       * gets the lock from the session
       * @param construct
       * @return HttpSession
      private HttpSession getLockFromSession(boolean construct){
        //test if it is a new Session
        HttpSession session = super.getSession(construct);
        //if is null no session was realy requested
        if (session == null) return null;
        //otherwise try to get the lock if necessery construct it
        //syncrhonized over session
        synchronized (session){
          //this migth throw an Exception if the session has been
          //invalidated in the mean time
          try{
            lock = (ReentrantLock) session.getAttribute(SessionThreadFilter.MUTEXT_IN_SESSION_KEY);
            if (lock == null){
              lock = new ReentrantLock();
              session.setAttribute (SessionThreadFilter.MUTEXT_IN_SESSION_KEY, lock);
            return session;
          } catch (IllegalStateException e){
            //the session has been invalidated before we tried to get the
            //lock we recursively call getLockFromSession
            //( assumption checked with Jetty: if the session is invalidated
            //and getSession is called on the thread a new valid session
            // should is returend)
            //I hope sometime you should get a valid session but I am not
            //sure. This is crucial for breaking of the recursion
            lock = null;
            return this.getLockFromSession(construct);
      /** used by the Filter to get the lock so that it can release it
      ReentrantLock getLock(){
         return this.lock;
    }As stated I would be very thankful if you could check the code and give some commends.

    synchronized (session){Are you sure that the session instance returned by two
    concurrent calls to getSession(...) are the same? I
    think that tomcat for instance may return different
    instances for the same "logical " session, which would
    break your scheme I think... Thank you (I did not know that on Tomcat). The same thing could also occur if another filter wrapped the Session.
    That's indeed a problem,which I have already adressed in another thread, but did not get an answer. ( http://forum.java.sun.com/thread.jsp?forum=33&thread=412380). The already cited thread http://forum.java.sun.com/thread.jsp?forum=4&thread=169872 adresses the same problem, but the discussion there ends with the recomandation that you should synchronize on HttpSession as I did it. Also in other forums I've read so.
    However like you I've at least strong doubts in this approach, so now my question is on what should I than generally for any access in any web-app syncrhonize the access to Http-Session as demanded by the Servlet specs.
    A few not realy satisfying answers:
    Synchronize on the HttpSession itself: I think still the best approach, but as you say is it guaranteed that the same instance of an HttpSession is given to each Request (in one Session)?
    Synchronized on the HttpServlet: This only works if no other servlet (or jsp) accesses in the session the value with the same key ( of course only if the session itself is threadsave). In case of ThingleThread it is not possible at all there can be multiple instances (you could use a static variable)
    Holding the object to synchronize on in applicaton scope or session scope: This obiously doesn't help, because somehow you have to obtain the lock and at least there you need another synchronize.Holding in application socpe is slow a static variable lock would be better there.
    Synchronize on some static variable: This will work, but is very slow (each request not only in the same session would synchronize on this).
    Hold a map in application scope, which holds for each Session-key a lock: Is probably faster than the static variable thing. However the access and the management of the Map (removing of unused locks etc.- Mabe you could use a WeakHashMap to collect the locks for not used keys anymore) is time consuming too and again the map must be accessed syncrhonasly by all requests.
    Syncrhonize on the Filter (only in my case): This is as slow as the static variable approach because each request will use the same lock the one instance of the Filter.
    So synchronizing on the session is propably the best approach if the same attribute name is accesed by different servlets. However if you say that some Web-Containers return different HttpSession instances for the same Session (which is legal according to the specification) this of course does not work.
    So I have realy no clue on what to syncrhonize than. Now help is not only neede on my Thread serialization filter but on my generally Servlet prgromming.
    May be you could help me for another synchronization aproach.

  • Configuration for extensions filter while using Tomahawk 1.1.6

    Hello,
    I am using Sun RI 1.1 with tomahawk 1.1.6 and using facelets.
    I am stucked with following error:
    SEVERE: Error Rendering View[/pages/employees-calendar.xhtml]
    java.lang.IllegalStateException: ExtensionsFilter not correctly configured. JSF mapping missing. JSF pages not covered. Please see: http://myfaces.apache.org/tomahawk/extensionsFilter.html
         at org.apache.myfaces.renderkit.html.util.AddResourceFactory.throwExtensionsFilterMissing(AddResourceFactory.java:358)...My web.xml content for filters are as follows:
    <filter>
        <filter-name>extensionsFilter</filter-name>
        <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
        <init-param>
             <description>Set the size limit for uploaded files.
                Format: 10 - 10 bytes
                        10k - 10 KB
                        10m - 10 MB
                        1g - 1 GB
            </description>
            <param-name>uploadMaxFileSize</param-name>
            <param-value>100m</param-value>
        </init-param>
        <init-param>
             <description>Set the threshold size - files
                    below this limit are stored in memory, files above
                    this limit are stored on disk.
                Format: 10 - 10 bytes
                        10k - 10 KB
                        10m - 10 MB
                        1g - 1 GB
            </description>
            <param-name>uploadThresholdSize</param-name>
            <param-value>100k</param-value>
        </init-param>
        <init-param>
              <description>Set the path where the intermediary files will be stored.</description>
         <param-name>uploadRepositoryPath</param-name>
         <param-value>/temp</param-value>
         </init-param>
    </filter>
    <filter-mapping>
         <filter-name>extensionsFilter</filter-name>
         <url-pattern>*.jsf</url-pattern>
    </filter-mapping>
    <filter-mapping>
         <filter-name>extensionsFilter</filter-name>
         <url-pattern>/faces/*</url-pattern>
    </filter-mapping>
    <servlet>
      <servlet-name>Faces Servlet</servlet-name>
      <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
      <servlet-name>Faces Servlet</servlet-name>
      <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>Please suggest, If I am missing any thing. I have tried many link from google but could not get any solution for this.

    Try mapping the filter by the servlet name, instead of my the URL.
        <filter-mapping>
            <filter-name>extensionsFilter</filter-name>
            <servlet-name>Faces Servlet</servlet-name>
        </filter-mapping>

  • Servlet Filter - Reading Request Error

    I have a servlet filter that sits in front of a webservice servlet (AXIS) - what I want the filter to do is to look at the content of the ServletRequest and if a particular string is located in the request, I want to call another service. Everything works just fine except (isin't there always an execept) that when I execute the following code in the filter:
    BufferedReader inReader = request.getReader();
    String line = null;
    StringBuffer sbuf = new StringBuffer();
    // Read the current request into a buffer
    while((line = inReader.readLine()) != null) {
    sbuf.append(line);
    sbuf.append("\n\r");
    if (sbuf.toString().indexOf("mystring") > -1) {
    // I do some code
    } else {
    chain.doFilter(request, wrapper);
    When I execute this code, at the chain.doFilter I get an "java.lang.IllegalStateException: getReader() has already been called for this request"
    I know that this is because I obtained the Reader from the request. But my question is - How can I look at the request string so that I can evaluate it and not have this exception thrown..
    Thx in advance...

    My guess is that when you do the chain.doFilter you pass the request to another resource that then tries to access the request.getInputStream method.
    From the JavaDocs:
    getReader
    public java.io.BufferedReader getReader()
    throws java.io.IOException
    Retrieves the body of the request as character data using a BufferedReader. The reader translates the character data according to the character encoding used on the body. Either this method or getInputStream() may be called to read the body, not both.
    Returns:
    a BufferedReader containing the body of the request
    Throws:
    java.io.UnsupportedEncodingException - if the character set encoding used is not supported and the text cannot be decoded
    IllegalStateException - if getInputStream() method has been called on this request
    java.io.IOException - if an input or output exception occurred

  • Conditionally send redirect in Servlet filter after j_security_check

    I am writing a form based challenge for a secured J2EE application. What I want the user to do is log in, and after they are authenticated by j_security_check, get the Role that they have, and based on the role, redirect with the filter to different jsp pages.
    Here is my code
    public void doFilter(
              ServletRequest req,
              ServletResponse resp,
              FilterChain chain)
              throws ServletException, IOException {
              //action to perform before logging on
              chain.doFilter(req, resp);
              System.out.println("Filter was called");
              HttpServletResponse response = (HttpServletResponse) resp;
              //do the work to get the users Role... request.isUserInRole("Some Role");
                                               //if yes
                                               response.sendRedirect("somejsp.jsp");
                                               //else
                                               //response.sendRedirect("someother.jsp")
                                              return;
         }When I try to run the above code, My send redirect has no effect, and I get the following in my System.out
    [5/17/04 10:31:20:975 CDT] 7b2bdbb7 TraceNLS u No message text associated with key HttpConnection.run:.java.lang.IllegalStateException:.0.response.bytes.written,.but.Content-Length.header.equals.9262 in bundle com.ibm.ejs.resources.seriousMessages
    [5/17/04 10:31:20:975 CDT] 7b2bdbb7 HttpConnectio E HttpConnection.run: java.lang.IllegalStateException: 0 response bytes written, but Content-Length header equals 9262
    [5/17/04 10:31:21:006 CDT] 7b2bdbb7 SystemOut O java.lang.IllegalStateException: 0 response bytes written, but Content-Length header equals 9262
    [5/17/04 10:31:21:006 CDT] 7b2bdbb7 SystemOut O      at com.ibm.ws.http.HttpResponse.finish(HttpResponse.java:89)
    [5/17/04 10:31:21:006 CDT] 7b2bdbb7 SystemOut O      at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:565)
    [5/17/04 10:31:21:006 CDT] 7b2bdbb7 SystemOut O      at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:366)
    [5/17/04 10:31:21:006 CDT] 7b2bdbb7 SystemOut O      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
    [5/17/04 10:31:29:350 CDT] 66a7dbb7 SystemOut O Filter was called
    [5/17/04 10:31:29:350 CDT] 66a7dbb7 SystemOut O Cast was completed
    [5/17/04 10:31:35:429 CDT] 66a7dbb7 WebGroup E SRVE0026E: [Servlet Error]-[Filter [LoginFilter]: filter is unavailable.]: java.lang.IllegalStateException
         at com.ibm.ws.webcontainer.srt.SRTServletResponseContext.sendRedirect(SRTServletResponseContext.java:101)
         at com.ibm.ws.webcontainer.srt.SRTServletResponse.sendRedirect(SRTServletResponse.java:679)
         at com.mutualofomaha.groupwebenrollment.LoginFilter.doFilter(LoginFilter.java:41)
         at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:914)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:528)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:176)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:79)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:201)
         at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
         at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
         at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
         at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
         at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:516)
         at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:362)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)

    Something in the filter chain has committed the response.
    As you're redirecting you almost certainly don't need to call filterChain.doFilter anyway; you just want to send the user somewhere else.

  • IllegalStateException: strict servlet API: cannot call getWriter()

    I am getting an exception in Weblogic when I am trying to display a pdf file in a web page.
    java.lang.IllegalStateException: strict servlet API: cannot call getWriter() after getOutputStream()
    I am using the following code code
    ByteArrayOutputStream baos;
    ServletOutputStream out = response.getOutputStream();
    baos.writeTo(out);
    I have seen this error in so many discussion forum and there is no proper solution for this error.
    I am able to see the pdf page even with this exception. But I want to get rid of this exception also from Weblogic.

    I just did a quick (and dirty!) test with the following to display a jpg image and it worked for me without any trace of an exception:
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
            response.setContentType("image/jpg");
            File f = new File("/Users/me/Desktop/IMG_0032.JPG");
            byte[] bits = new byte[(int) f.length()];
            FileInputStream fos = new FileInputStream(f);
            fos.read(bits);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            baos.write(bits, 0, bits.length);
            baos.writeTo(response.getOutputStream());
            baos.close();
            fos.close();
        }Note that there is no call anywhere to response.getWriter() in that.
    I'd guess the exception is directing you at what the problem is, at least as the server is seeing it -- somewhere in the execution of the request path there would appear to be call to response.getWriter() occurring after a call to response.getOutputStream() has been called, which is not permitted on WLS according to the error message.
    Do you use filters on this app? If response.getWriter() has been called on the same response object in a post request filter phase, that would be on the same call path with the same response object and would result in the exception.
    -steve-

  • When Clicking a particular Product - java.lang.IllegalStateException: Response already committed

    Hi,
    Can anyone please help me out on the below exception. When am clicking a particular product am getting below exception
    java.lang.IllegalStateException: Response already committed
        at weblogic.servlet.internal.ServletResponseImpl.objectIfCommitted(ServletResponseImpl.java:1629)
        at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:637)
        at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:602)
        at atg.servlet.ContextRootSwappingInterceptor.interceptRequest(ContextRootSwappingInterceptor.java:366)
        at atg.servlet.pipeline.TailPipelineServlet.service(TailPipelineServlet.java:168)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.pipeline.DispatcherPipelineServletImpl.service(DispatcherPipelineServletImpl.java:275)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.endeca.assembler.AssemblerPipelineServlet.service(AssemblerPipelineServlet.java:458)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.http.CookieBufferServlet.service(CookieBufferServlet.java:119)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.userprofiling.ExpiredPasswordServlet.service(ExpiredPasswordServlet.java:383)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.pipeline.MimeTyperPipelineServlet.service(MimeTyperPipelineServlet.java:228)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.droplet.DropletEventServlet.service(DropletEventServlet.java:696)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.commerce.order.CommerceCommandServlet.service(CommerceCommandServlet.java:150)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.commerce.promotion.PromotionServlet.service(PromotionServlet.java:213)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.userprofiling.AccessControlServlet.service(AccessControlServlet.java:696)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.sessionsaver.SessionSaverServlet.service(SessionSaverServlet.java:2452)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.userprofiling.PageEventTriggerPipelineServlet.service(PageEventTriggerPipelineServlet.java:191)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.search.servlet.SearchClickThroughServlet.service(SearchClickThroughServlet.java:418)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.multisite.SiteSessionEventTriggerPipelineServlet.service(SiteSessionEventTriggerPipelineServlet.java:161)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.userprofiling.SessionEventTrigger.service(SessionEventTrigger.java:512)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.userprofiling.ProfilePropertyServlet.service(ProfilePropertyServlet.java:230)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.userprofiling.ProfileRequestServlet.service(ProfileRequestServlet.java:461)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.projects.store.servlet.pipeline.ProtocolSwitchServlet.service(ProtocolSwitchServlet.java:309)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.pipeline.DynamoPipelineServlet.service(DynamoPipelineServlet.java:491)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.pipeline.URLArgumentPipelineServlet.service(URLArgumentPipelineServlet.java:298)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.pipeline.PathAuthenticationPipelineServlet.service(PathAuthenticationPipelineServlet.java:392)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.security.ThreadUserBinderServlet.service(ThreadUserBinderServlet.java:113)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.dtm.TransactionPipelineServlet.service(TransactionPipelineServlet.java:234)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.pipeline.SecurityServlet.service(SecurityServlet.java:196)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.multisite.SiteContextPipelineServlet.service(SiteContextPipelineServlet.java:515)
        at atg.servlet.pipeline.PipelineableServletImpl.passRequest(PipelineableServletImpl.java:157)
        at atg.servlet.pipeline.HeadPipelineServlet.passRequest(HeadPipelineServlet.java:1252)
        at atg.servlet.pipeline.HeadPipelineServlet.service(HeadPipelineServlet.java:930)
        at atg.servlet.pipeline.PipelineableServletImpl.service(PipelineableServletImpl.java:272)
        at atg.filter.dspjsp.PageFilter.innerDoFilter(PageFilter.java:348)
        at atg.filter.dspjsp.PageFilter.doFilter(PageFilter.java:206)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    >
    Regards
    333

    Usually this error comes if you try to do a forward or redirect when response is already committed i.e. when something has already been sent back to the client browser you can't do a redirect.
    Sometimes this can happen when there is another error in your application which triggers the application server to redirect to the error page (if you cave configured one) but the response might already have been committed. Try to enable loggingDebug on /atg/dynamo/servlet/dafpipeline/VirtualContextRootInterceptor and see if you can get more information about any possible error in the logs.

  • Command Navigation Item + Filter mapping issue

    Readers,
    I have 2 questions here
    1) How is navigation item different from commandLink ?
    2)I am having a navigation item in my Main Page. the code of which is
    <f:facet name="globalLinks">
                <af:group id="g1">
                  <af:spacer width="10" height="10" id="s1"/>
                  <af:navigationPane id="np1" hint="bar"
                                     inlineStyle="vertical-align:sub;">
                    <af:commandNavigationItem text="Home" id="cni2"
                                              icon="/com/xxx/images/home.gif"
                                              destination="/faces/MainPage"
                                              targetFrame="_self"/>
                    <af:commandNavigationItem text="Logout" id="cni1"
                                              icon="/com/xxx/images/glbl_logout.gif"
                                              actionListener="#{backingBeanScope.MainPageBean.doLogout}"/>
                  </af:navigationPane>
                </af:group>
              </f:facet>I have configured a filter to intercept all URL of type "/*" and redirect it tologin page if the session attribute is null
    the issue happening here is on click of the Home link, it takes me to the login page in spite of configuring the commandNavigationItem for home link (see the above code). When i click on logout though i am redirected to login page i get the NPE.
    Code for Filter is
                    if (session.getAttribute("userLoginId") != null) {
                        user = (String)session.getAttribute("userLoginId");
                    if ((user == null) || (user.equals(""))) {
                        String finalRedirectURL =  "/Portal/faces/LoginPage";
                        hres.sendRedirect(finalRedirectURL);
                        FacesContext context = FacesContext.getCurrentInstance();
                        context.responseComplete();  //*on logout i get NPE here*
                    }Please advice..
    thnks
    Jdev 11.1.1.5

    Question one still unanswered also a bit of question 2.
    Now the issue is getting the following error on logout, clicking on home page now doesn't redirect me to login page.
    java.lang.IllegalStateException: Cannot forward a response that is already committed
         at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:122)
         at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
         at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44)
         at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:44
    Any ideas ?
    Edited by: in the line of fire on Nov 1, 2011 1:18 PM

Maybe you are looking for

  • How do I get Apple to unlock a Verizon unlocked 4s to use domestically on a GSM network?

    I have 4 iPhone 4S's in my family.  The contract with Verizon ended on December 5, 2013.  Early in 2014 I requested from Verizon that all 4 iPhones be unlocked, which was done and confirmed by Verizon.  However, subsequently I have learned that the V

  • HT1904 how do I restrict itunes purchases

    Hi I accidentally purchased a song on iTunes with an iTunes card. Is there a way I can get a refund for it? I stopped it from downloading fully.

  • Viewing size

    On my laptop my Firefox is to small, I don't have that problem when using Chrome. Is there away for me to make the viewing area larger?? Everything is to small, from the font to the images, etc .

  • How to record AP Extreme data used (due to new DSL caps)?

    At&t DSL now implementing data caps. Using an Airport Extreme over ethernet & wifi to three Mac's and want to keep track of data used.

  • Caching Problem in Safari

    Hi, Even when we deployed the new files in our testing server, our application running on Safari browser is not picking up the newly deployed files rather its loading the old file. The file which is not loading is a .js file(JavaScript file). We trie