2 Replies Latest reply on Apr 14, 2010 11:10 AM by deadlock gr

    No long-running conversations - IllegalArgumentException: Stack must not be null

    deadlock gr Newbie
      Hi all,

      I have a very simple application with just 2 pages. I have a command button in each, which makes a redirect-after-post to the other. This works well, as I see the URL of the current page I am seeing in the address bar.

      BUT, even though I have no long-running conversations defined, after a random number of clicks, and - I think - after a random number of seconds (~10s - 60s) I get the lovely exception at the end of this post.

      Now, if I have understood how temporary conversations work when redirecting this happens:
      1. When  I first see my application, the url is http://localhost:7001/myapp
      2. When I click the button in pageA.xhtml, I end up in "pageB.xhtml?cid=26"

      This is normal because Seam extends the temporary conversation of the first request to last until the renderResponse phase of the redirect. So, it uses the cid (Conversation Id) of the extended temporary conversation to find any propagated parameters.

      3. When I click the button in pageB.xhtml, I end up in pageA.xhtml?cid=26

      The same cid was given to the new extended temporary conversation. This is normal because the conversation ended at the end of the previous redirect-after-post, and not the number 26 is free to use as a cid.

      Is this all correct? If yes, why does this happen: If I re-type the applications home address (showing pageA) and re-click, I end up in pageB.xhtml?cid=29, which is a different number than 26. But 26 has ended after the previous RenderResponse phase, befire I re-types the url. Why is it not used instead of 29?

      So, to sup up, 2 questions:

      A. Why do I get the exception, even though I have not started any long-running conversations?
      B. What happens exactly with the cid? On what basis does it change?

      Cheers,

      Markos




      Error 500--Internal Server Error

      java.lang.IllegalArgumentException: Stack must not be null
              at org.jboss.seam.core.ConversationEntry.(ConversationEntry.java:45)
              at org.jboss.seam.core.ConversationEntries.createConversationEntry(ConversationEntries.java:53)
              at org.jboss.seam.core.Manager.createConversationEntry(Manager.java:664)
              at org.jboss.seam.core.Manager.beforeRedirect(Manager.java:836)
              at org.jboss.seam.faces.FacesManager.beforeRedirect(FacesManager.java:66)
              at org.jboss.seam.faces.FacesManager.redirect(FacesManager.java:182)
              at org.jboss.seam.faces.Navigator.redirect(Navigator.java:55)
              at org.jboss.seam.navigation.RedirectNavigationHandler.navigate(RedirectNavigationHandler.java:61)
              at org.jboss.seam.navigation.Rule.execute(Rule.java:101)
              at org.jboss.seam.navigation.Navigation.navigate(Navigation.java:58)
              at org.jboss.seam.navigation.Pages.navigate(Pages.java:203)
              at org.jboss.seam.jsf.SeamNavigationHandler.handleNavigation(SeamNavigationHandler.java:42)
              at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
              at javax.faces.component.UICommand.broadcast(UICommand.java:387)
              at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:324)
              at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:299)
              at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:256)
              at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:469)
              at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
              at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
              at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
              at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
              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:292)
              at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
              at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
              at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
              at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
              at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
              at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
              at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
              at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
              at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
              at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
              at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
              at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
              at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
              at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
              at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
              at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
              at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
              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:2202)
              at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
              at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
              at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
              at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)