ICEfaces
  1. ICEfaces
  2. ICE-1176

seam sometimes throws NullPointerException in ServerConversationContext flush

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.1
    • Fix Version/s: 1.5.3
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      Operating System: Mac OS X 10.0
      Platform: Macintosh

      Description

      java.lang.NullPointerException
              at org.jboss.seam.contexts.ServerConversationContext.flush(ServerConversationContext.java:210)
              at org.jboss.seam.contexts.Lifecycle.flushAndDestroyContexts(Lifecycle.java:348)
              at org.jboss.seam.contexts.Lifecycle.endRequest(Lifecycle.java:248)
              at org.jboss.seam.jsf.AbstractSeamPhaseListener.afterRender(AbstractSeamPhaseListener.java:232)
              at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:89)
              at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter
      (PhaseListenerManager.java:89)
              at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:391)
              at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCyclePartial(BlockingServlet.java:446)
              at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:414)
              at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:275)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 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.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
              at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at
      org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
              at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
              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.processConnection
      (Http11BaseProtocol.java:664)
              at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
              at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
              at java.lang.Thread.run(Thread.java:595)

        Activity

        Hide
        Ted Goddard added a comment -

        The candidate fix that resolved the NullPointerException caused component-showcase to lock. The idea
        was to allow only a single thread per user in the BlockingServlet, but of course a given user needs two
        threads; one for blocking connections and one for user events.

        Show
        Ted Goddard added a comment - The candidate fix that resolved the NullPointerException caused component-showcase to lock. The idea was to allow only a single thread per user in the BlockingServlet, but of course a given user needs two threads; one for blocking connections and one for user events.
        Hide
        Ken Fyten added a comment -

        Target 1.6

        Show
        Ken Fyten added a comment - Target 1.6
        Hide
        Ted Goddard added a comment -

        A fix for this bug is checked into the 1.5 branch. No checkin was made to the head as it has diverged
        away from this fix being applicable. Note that this fix leaves a small window for a race condition
        between requests for DOM updates and events, however I elected not to alter this as it may have other
        undesirable behavioral changes (the full extent of this fix should be made in the head: for instance
        DOM updates and ping requests do not need ICEfaces PersistentFacesState or requestMap initialization)

        svn commit . -m "synchronizing any threads relaying user events into BlockingServlet to avoid
        NullPointerException in Seam ServerConversationContext flush(ICE-1176)"
        Sending core/src/com/icesoft/faces/webapp/xmlhttp/BlockingResponseState.java
        Sending core/src/com/icesoft/faces/webapp/xmlhttp/BlockingServlet.java
        Sending core/src/com/icesoft/faces/webapp/xmlhttp/PortletBlockingResponseState.java
        Sending core/src/com/icesoft/faces/webapp/xmlhttp/ResponseState.java
        Transmitting file data ....
        Committed revision 12959.

        Show
        Ted Goddard added a comment - A fix for this bug is checked into the 1.5 branch. No checkin was made to the head as it has diverged away from this fix being applicable. Note that this fix leaves a small window for a race condition between requests for DOM updates and events, however I elected not to alter this as it may have other undesirable behavioral changes (the full extent of this fix should be made in the head: for instance DOM updates and ping requests do not need ICEfaces PersistentFacesState or requestMap initialization) svn commit . -m "synchronizing any threads relaying user events into BlockingServlet to avoid NullPointerException in Seam ServerConversationContext flush( ICE-1176 )" Sending core/src/com/icesoft/faces/webapp/xmlhttp/BlockingResponseState.java Sending core/src/com/icesoft/faces/webapp/xmlhttp/BlockingServlet.java Sending core/src/com/icesoft/faces/webapp/xmlhttp/PortletBlockingResponseState.java Sending core/src/com/icesoft/faces/webapp/xmlhttp/ResponseState.java Transmitting file data .... Committed revision 12959.
        Hide
        Ted Goddard added a comment -

        Fix in 1.5 branch verified against seam CVS (revision 1.31, label JBoss_Seam_1_1_1_GA: 1.31)

        Show
        Ted Goddard added a comment - Fix in 1.5 branch verified against seam CVS (revision 1.31, label JBoss_Seam_1_1_1_GA: 1.31)
        Hide
        Ted Goddard added a comment -


        Changing target to 1.5.3.

        Show
        Ted Goddard added a comment - Changing target to 1.5.3.
        Hide
        Ted Goddard added a comment -

        Tested and verified fixed against Seam 1.1.1GA.

        Show
        Ted Goddard added a comment - Tested and verified fixed against Seam 1.1.1GA.
        Hide
        Ken Fyten added a comment -

        Ted Goddard reports: Verified fixed; however, this laptop may not exhibit the
        timing characteristics required to reproduce the race condition.

        Show
        Ken Fyten added a comment - Ted Goddard reports: Verified fixed; however, this laptop may not exhibit the timing characteristics required to reproduce the race condition.

          People

          • Assignee:
            Ted Goddard
            Reporter:
            Ted Goddard
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: