ICEfaces
  1. ICEfaces
  2. ICE-964

ice:outputStyle or ServletEnvironmentRequest header exception

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5
    • Fix Version/s: 1.6DR#3, 1.6
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Operating System: Windows 2000
      Platform: PC

      Description

      The output html looks fine, no functional problem so far.

      Using any page with ice:outputStyle,

      we have the following exception:


      [#|2006-11-03T13:10:47.154-0700|SEVERE|sun-appserver-pe8.2|
      com.icesoft.faces.component.style.OutputStyleRenderer|_ThreadID=16;|
      Error in OutputStyleRenderer
      java.lang.NullPointerException
              at
      com.icesoft.faces.env.ServletEnvironmentRequest.getHeader(ServletEnvironmentRequest.java:229)
              at
      com.icesoft.faces.component.style.OutputStyleRenderer.browserType(OutputStyleRenderer.java:132)
              at
      com.icesoft.faces.component.style.OutputStyleRenderer.encodeEnd(OutputStyleRenderer.java:77)
              at
      javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:720)
              at
      com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:545)
              at
      com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:541)
              at
      com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:541)
              at
      com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:541)
              at
      com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:541)
              at
      com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:527)
              at
      com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
              at
      com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl.renderView(ViewHandlerImpl.java:311)
              at
      com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
              at
      com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:221)
              at
      com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
              at
      com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCyclePartial(BlockingServlet.java:425)
              at
      com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:393)
              at
      com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:263)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
              at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source)
              at
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:585)
              at org.apache.catalina.security.SecurityUtil
      $1.run(SecurityUtil.java:249)
              at java.security.AccessController.doPrivileged(Native Method)
              at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
              at
      org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
              at
      org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
              at
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:257)
              at org.apache.catalina.core.ApplicationFilterChain.access
      $000(ApplicationFilterChain.java:55)
              at org.apache.catalina.core.ApplicationFilterChain
      $1.run(ApplicationFilterChain.java:161)
              at java.security.AccessController.doPrivileged(Native Method)
              at
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
              at
      org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
              at
      org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
              at
      org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:225)
              at
      org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
              at
      org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
              at
      org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
              at
      org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:551)
              at
      org.apache.catalina.core.StandardEngineValve.invoke(StandardEn

        Issue Links

          Activity

          Frank Ye created issue -
          Hide
          Ted Goddard added a comment -

          This is not likely security-related – all calls to our servlet go through the access controller.

          We are, however, likely not propagating the headers properly (I believe Patrick has also requested
          this for icefaces.org logging.)

          Show
          Ted Goddard added a comment - This is not likely security-related – all calls to our servlet go through the access controller. We are, however, likely not propagating the headers properly (I believe Patrick has also requested this for icefaces.org logging.)
          Hide
          Frank Ye added a comment -

          It is not related to Security and happened after interactive with JSP Page.

          Firstly time rendering is fine,

          It will fail with Tomcat as well, same as Sun Application Server.

          a simple test case:
          http://10.18.39.25:8888/svn/repo/test/jetty-htmlunit/component-suite/web
          outputStyle.jsp

          13703 [http-8084-Processor24] ERROR
          com.icesoft.faces.component.style.OutputStyleRenderer - Error in
          OutputStyleRenderer
          java.lang.NullPointerException
          at com.icesoft.faces.env.ServletEnvironmentRequest.getHeaderNames
          (ServletEnvironmentRequest.java:241)
          at com.icesoft.faces.component.style.OutputStyleRenderer.browserType
          (Unknown Source)
          at com.icesoft.faces.component.style.OutputStyleRenderer.encodeEnd
          (Unknown Source)
          at javax.faces.component.UIComponentBase.encodeEnd
          (UIComponentBase.java:720)
          at com.icesoft.faces.application.D2DViewHandler.renderResponse
          (D2DViewHandler.java:545)
          at com.icesoft.faces.application.D2DViewHandler.renderResponse
          (D2DViewHandler.java:541)
          at com.icesoft.faces.application.D2DViewHandler.renderResponse
          (D2DViewHandler.java:541)
          at com.icesoft.faces.application.D2DViewHandler.renderResponse
          (D2DViewHandler.java:541)
          at com.icesoft.faces.application.D2DViewHandler.renderResponse
          (D2DViewHandler.java:527)
          at com.icesoft.faces.application.D2DViewHandler.renderView
          (D2DViewHandler.java:149)
          at com.sun.faces.lifecycle.RenderResponsePhase.execute
          (RenderResponsePhase.java:87)
          at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
          at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
          at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCyclePartial
          (BlockingServlet.java:425)
          at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates
          (BlockingServlet.java:393)
          at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service
          (BlockingServlet.java:263)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
          (ApplicationFilterChain.java:252)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter
          (ApplicationFilterChain.java:173)
          at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter
          (MonitorFilter.java:368)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
          (ApplicationFilterChain.java:202)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter
          (ApplicationFilterChain.java:173)
          at org.apache.catalina.core.StandardWrapperValve.invoke
          (StandardWrapperValve.java:213)
          at org.apache.catalina.core.StandardContextValve.invoke
          (StandardContextValve.java:178)
          at org.apache.catalina.core.StandardHostValve.invoke
          (StandardHostValve.java:126)
          at org.apache.catalina.valves.ErrorReportValve.invoke
          (ErrorReportValve.java:105)
          at org.apache.catalina.core.StandardEngineValve.invoke
          (StandardEngineValve.java:107)
          at org.apache.catalina.connector.CoyoteAdapter.service
          (CoyoteAdapter.java:148)
          at org.apache.coyote.http11.Http11Processor.process
          (Http11Processor.java:869)
          at
          org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConne
          ction(Http11BaseProtocol.java:664)
          at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket
          (PoolTcpEndpoint.java:527)
          at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt
          (LeaderFollowerWorkerThread.java:80)
          at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
          (ThreadPool.java:684)
          at java.lang.Thread.run(Thread.java:595)

          Show
          Frank Ye added a comment - It is not related to Security and happened after interactive with JSP Page. Firstly time rendering is fine, It will fail with Tomcat as well, same as Sun Application Server. a simple test case: http://10.18.39.25:8888/svn/repo/test/jetty-htmlunit/component-suite/web outputStyle.jsp 13703 [http-8084-Processor24] ERROR com.icesoft.faces.component.style.OutputStyleRenderer - Error in OutputStyleRenderer java.lang.NullPointerException at com.icesoft.faces.env.ServletEnvironmentRequest.getHeaderNames (ServletEnvironmentRequest.java:241) at com.icesoft.faces.component.style.OutputStyleRenderer.browserType (Unknown Source) at com.icesoft.faces.component.style.OutputStyleRenderer.encodeEnd (Unknown Source) at javax.faces.component.UIComponentBase.encodeEnd (UIComponentBase.java:720) at com.icesoft.faces.application.D2DViewHandler.renderResponse (D2DViewHandler.java:545) at com.icesoft.faces.application.D2DViewHandler.renderResponse (D2DViewHandler.java:541) at com.icesoft.faces.application.D2DViewHandler.renderResponse (D2DViewHandler.java:541) at com.icesoft.faces.application.D2DViewHandler.renderResponse (D2DViewHandler.java:541) at com.icesoft.faces.application.D2DViewHandler.renderResponse (D2DViewHandler.java:527) at com.icesoft.faces.application.D2DViewHandler.renderView (D2DViewHandler.java:149) at com.sun.faces.lifecycle.RenderResponsePhase.execute (RenderResponsePhase.java:87) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117) at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCyclePartial (BlockingServlet.java:425) at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates (BlockingServlet.java:393) at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service (BlockingServlet.java:263) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter (MonitorFilter.java:368) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConne ction(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run (ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)
          Hide
          Ted Goddard added a comment -

          Frank believes it may be possible to fix directly in the component itself.

          Show
          Ted Goddard added a comment - Frank believes it may be possible to fix directly in the component itself.
          Hide
          Rob Mayhew added a comment -

          Fixed. Componenet will now store the user agent
          r11626

          Show
          Rob Mayhew added a comment - Fixed. Componenet will now store the user agent r11626
          Hide
          Frank Ye added a comment -

          reassign to Ted for ServletEnvironmentRequest header hashTable is null

          Show
          Frank Ye added a comment - reassign to Ted for ServletEnvironmentRequest header hashTable is null
          Hide
          Ted Goddard added a comment -

          Do we need this fixed further this release, or is the component fix sufficient?

          Show
          Ted Goddard added a comment - Do we need this fixed further this release, or is the component fix sufficient?
          Icefaces Administrator made changes -
          Field Original Value New Value
          issue.field.bugzillaimportkey 983 12233
          Ken Fyten made changes -
          Affects Version/s 1.5 [ 10027 ]
          Affects Version/s 1.1 Alpha [ 10026 ]
          Ken Fyten made changes -
          Assignee Ted Goddard [ ted.goddard ]
          Adnan Durrani made changes -
          Link This issue is duplicated by ICE-1397 [ ICE-1397 ]
          Hide
          Adnan Durrani added a comment -

          This bug still exist(1.6 DR#2). The outputStyleRenderer asks for the user_agent from the headers of HttpServletRequest and if not found then asks from the component itself. However attempt to get user_agent from request throws a NullPointerException. This is due to the fact that headers hashTable is null in ServletEnvironmentRequest and the other issue is that hashTable key's are case sensitive and OutputStyleHeader makes the following call:

          request.getHeader("User-Agent")

          should be replaced with:

          request.getHeader("user-agent")

          Show
          Adnan Durrani added a comment - This bug still exist(1.6 DR#2). The outputStyleRenderer asks for the user_agent from the headers of HttpServletRequest and if not found then asks from the component itself. However attempt to get user_agent from request throws a NullPointerException. This is due to the fact that headers hashTable is null in ServletEnvironmentRequest and the other issue is that hashTable key's are case sensitive and OutputStyleHeader makes the following call: request.getHeader("User-Agent") should be replaced with: request.getHeader("user-agent")
          Adnan Durrani made changes -
          ICEfaces Forum Reference http://www.icefaces.org/JForum/posts/list/4166.page#18566
          Fix Version/s 1.6DR#3 [ 10050 ]
          Assignee Mircea Toma [ mircea.toma ]
          Adnan Durrani made changes -
          Link This issue depends on ICE-893 [ ICE-893 ]
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #13474 Thu Apr 05 16:16:06 MDT 2007 mircea.toma Make headers map always present -- ICE-1413, ICE-964.
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/env/ServletEnvironmentRequest.java
          Hide
          Mircea Toma added a comment -

          Wow, you would be lead to believe, by the number of comments, that this bug was really difficult to fix.

          Show
          Mircea Toma added a comment - Wow, you would be lead to believe, by the number of comments, that this bug was really difficult to fix.
          Mircea Toma made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #13518 Thu Apr 12 11:30:19 MDT 2007 mircea.toma Copy the Enumeration containing header values -- ICE-964
          Files Changed
          Commit graph MODIFY /icefaces/trunk/icefaces/core/src/com/icesoft/faces/env/ServletEnvironmentRequest.java
          Hide
          Adnan Durrani added a comment -

          ServletEnvironmentRequest has been fixed but component still need to be fixed.

          Show
          Adnan Durrani added a comment - ServletEnvironmentRequest has been fixed but component still need to be fixed.
          Adnan Durrani made changes -
          Resolution Fixed [ 1 ]
          Status Resolved [ 5 ] Reopened [ 4 ]
          Assignee Mircea Toma [ mircea.toma ] Adnan Durrani [ adnan.durrani ]
          Hide
          Adnan Durrani added a comment -

          OutputStyle has been fixed as well. -revision 13516

          Show
          Adnan Durrani added a comment - OutputStyle has been fixed as well. -revision 13516
          Adnan Durrani made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Ken Fyten made changes -
          Fix Version/s 1.6 [ 10031 ]
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Assignee Adnan Durrani [ adnan.durrani ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Frank Ye
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: