1 Reply Latest reply on Feb 10, 2007 3:17 PM by Tony Herstell

    Destroy conversation exception...

    Tony Herstell Master

      Given:

      <!DOCTYPE pages PUBLIC
       "-//JBoss/Seam Pages Configuration DTD 1.1//EN"
       "http://jboss.com/products/seam/pages-1.1.dtd">
      
       <pages no-conversation-view-id="/mainmenu.xhtml">
      
       <page view-id="/userCRUD.xhtml" timeout="300000">
       Reason: #{cRUDUserController.mode} User ( #{user.username} )
       </page>
       <page view-id="/userConfirm.xhtml" timeout="300000">
       Reason: Confirm #{cRUDUserController.mode} User (#{user.username} )
       </page>
       <page view-id="/userRegistration.xhtml" timeout="300000">
       Reason: Registration of new User
       </page>
      
       <page view-id="/organisationCRUD.xhtml" timeout="300000">
       Reason: #{cRUDOrganisationController.mode} Organisation ( #{organisation.name} )
       </page>
       <page view-id="/organisationConfirm.xhtml" timeout="300000">
       Reason: Confirm #{cRUDOrganisationController.mode} Organisation (#{organisation.name} )
       </page>
      
       </pages>
      
      
      
      and:
      
      
      
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
       <div xmlns="http://www.w3.org/1999/xhtml"
       xmlns:c="http://java.sun.com/jstl/core"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:ice="http://www.icesoft.com/icefaces/component">
      
       <div align="center">
       <h1>
       <ice:outputText rendered="#{not empty conversationList}" value="Workspaces" />
       </h1>
       </div>
       <div>
       <ice:form>
       <ice:dataTable value="#{conversationList}" var="entry"
       rendered="#{not empty conversationList}">
       <ice:column>
       <f:facet name="header">Workspace</f:facet>
       <ice:outputText value="#{entry.description}" rendered="#{entry.current}"/>
       <ice:commandLink action="#{entry.select}" value="#{entry.description}" rendered="#{!entry.current}"/>
       <ice:outputText value="[current]" rendered="#{entry.current}"/>
       </ice:column>
       <ice:column>
       <f:facet name="header">Activity</f:facet>
       <ice:outputText value="#{entry.startDatetime}">
       <f:convertDateTime type="time" pattern="hh:mm a"/>
       </ice:outputText>
       <ice:outputText value=" - "/>
       <ice:outputText value="#{entry.lastDatetime}">
       <f:convertDateTime type="time" pattern="hh:mm a"/>
       </ice:outputText>
       </ice:column>
       <ice:column>
       <f:facet name="header">Action</f:facet>
       <ice:commandButton action="#{entry.select}" value="#{messages.button_switch}" rendered="#{!entry.current}"/>
       <ice:commandButton action="#{entry.destroy}" value="#{messages.button_destroy}" rendered="#{!entry.current}"/>
       <ice:outputText value="#{messages.label_none}" rendered="#{entry.current}"/>
       </ice:column>
       </ice:dataTable>
       </ice:form>
       </div>
      
       </div>
      
      
      
      
      
      hanging off the bottom of my template:
      
      
      
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
       <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:c="http://java.sun.com/jstl/core"
       xmlns:ice="http://www.icesoft.com/icefaces/component"
       xmlns:s="http://jboss.com/products/seam/taglib">
       <head>
       <meta http-equiv="Content-Type"
       content="text/html; charset=iso-8859-1" />
      
       <meta http-equiv="Cache-Control" content="no-cache"/>
       <meta http-equiv="Pragma" content="no-cache"/>
       <meta http-equiv="Expires" content="0"/>
      
       <link rel="stylesheet" type="text/css" href="./xmlhttp/css/xp/xp.css" />
       <link rel="stylesheet" type="text/css" href="./css/risingstars.css" />
      
       <title>Rising Stars-<ui:insert name="title" /></title>
       </head>
      
       <body>
      
       <f:facet name="aroundInvalidField">
       <s:div styleClass="errorBox"/>
       </f:facet>
      
       <table class="titleDevider" width="100%" cellpadding="0" cellspacing="0">
       <tr>
       <td width="25%">
       <ice:graphicImage id="logo" alt="logo" url="./images/logo.gif" />
       </td>
      
       <td class="mainTitle" width="50%">
       <ui:insert name="title" />
       </td>
      
       <td width="25%" align="right">
       <ice:form>
       <s:validateAll>
      
       <ice:panelGrid columns="2" rendered="#{identity.loggedIn}">
       <ice:outputText value="#{identity.username}" />
       <ice:commandButton type="submit" value="#{messages.button_logout}" action="#{identity.logout}" styleClass="button"/>
       </ice:panelGrid>
      
       <ice:panelGrid columns="3" rendered="#{!(identity.loggedIn) and !(loggedInUser.currentlyRegistering)}">
       <ice:outputLabel for="username" value="#{messages.label_username}" />
       <s:decorate>
       <ice:inputText id="username" value="#{identity.username}" required="true" title="#{messages.hint_username}" /><!-- partialSubmit="true" -->
       </s:decorate>
       <ice:outputText styleClass="mandatory" value="#{messages.tag_mandatory}" />
      
       <ice:outputText value=""/>
       <div align="left">
       <ice:message errorClass="error" for="username"/>
       </div>
       <ice:outputText value=""/>
      
       <ice:outputLabel for="password" value="#{messages.label_password}"/>
       <s:decorate>
       <ice:inputSecret id="password" value="#{identity.password}" redisplay="true" required="true" title="#{messages.hint_password}" /><!-- partialSubmit="true" -->
       </s:decorate>
       <ice:outputText styleClass="mandatory" value="#{messages.tag_mandatory}" />
      
       <ice:outputText value=""/>
       <div align="left">
       <ice:message errorClass="error" for="password" />
       </div>
       <ice:outputText value=""/>
       </ice:panelGrid>
      
       <ice:panelGrid columns="2" rendered="#{!(identity.loggedIn) and !(loggedInUser.currentlyRegistering)}" >
       <ice:commandButton id="loginAttempt" type="submit" value="#{messages.button_login}" action="#{identity.login}">
       <s:conversationPropagation type="none"/>
       </ice:commandButton>
       <s:button type="submit" value="#{messages.button_register}" immediate="true" action="#{userRegistrationController.startRegistration}">
       <s:conversationPropagation type="none"/>
       </s:button>
       </ice:panelGrid>
      
       <ice:panelGrid columns="1" rendered="#{!(identity.loggedIn) and !(loggedInUser.currentlyRegistering)}">
       <ice:message infoClass="error" for="loginAttempt" />
       </ice:panelGrid>
      
       <ice:panelGrid columns="1" rendered="#{loggedInUser.currentlyRegistering}">
       <ice:outputLabel>
       <ice:outputText value="#{messages.advisory_text_registering}"/>
       </ice:outputLabel>
       </ice:panelGrid>
      
       </s:validateAll>
       </ice:form>
       </td>
       </tr>
       </table>
      
       <!-- Menu Section -->
       <table width="100%" border="0" cellpadding="0" cellspacing="0">
       <tr>
       <td width="166px" class="menuArea">
       <ice:form>
       <ice:menuBar orientation="vertical" rendered="#{!(loggedInUser.currentlyRegistering)}">
       <ice:menuItem id="goHomeMenuOption" value="#{messages.menu_item_main_menu}" action="#{menu.goHome}">
       <s:conversationPropagation type="none"/>
       </ice:menuItem>
       <ice:menuItem id="usersMenuSection" value="#{messages.menu_item_users}" rendered="#{identity.loggedIn}">
       <ice:menuItem id="usersFindMenuOption" value="#{messages.menu_item_find}" action="#{findUserController.startFind}" rendered="#{identity.loggedIn}">
       <s:conversationPropagation type="none"/>
       </ice:menuItem>
       <ice:menuItem id="usersCreateMenuOption" value="#{messages.menu_item_create}" action="#{cRUDUserController.startCreate}" rendered="#{identity.loggedIn}">
       <s:conversationPropagation type="none"/>
       </ice:menuItem>
       </ice:menuItem>
       <ice:menuItem id="organisationMenuSection" value="#{messages.menu_item_organisations}" rendered="#{identity.loggedIn}">
       <ice:menuItem id="organisationsFindMenuOption" value="#{messages.menu_item_find}" action="#{findOrganisationController.startFind}" rendered="#{identity.loggedIn}">
       <s:conversationPropagation type="none"/>
       </ice:menuItem>
       <ice:menuItem id="organisationsCreateMenuOption" value="#{messages.menu_item_create}" action="#{cRUDOrganisationController.startCreate}" rendered="#{identity.loggedIn}">
       <s:conversationPropagation type="none"/>
       </ice:menuItem>
       </ice:menuItem>
       <ice:menuItemSeparator/>
       </ice:menuBar>
       </ice:form>
       </td>
      
       <td align="center">
       <ice:panelGrid>
       <ui:insert name="content" />
       </ice:panelGrid>
       <ice:panelGrid rendered="#{!(loggedInUser.currentlyRegistering)}">
       <ui:include src="conversations.xhtml"/>
       </ice:panelGrid>
       </td>
       </tr>
       </table>
      
       <div class="footerBar">
       <div class="footerProgressImage">
       <ice:outputConnectionStatus />
       </div>
       <div class="footerAuthorText">
       <ice:outputText value="#{messages.footer_text_technology}" />
       <ice:outputText value="#{messages.footer_text_by}" />
       <a href="mailto:#{messages.footer_text_author_email}">
       <ice:outputText value="#{messages.footer_text_author_name}" onmouseovereffect="#{highlight}"/>
       </a>
       </div>
       </div>
       <!--<ui:debug hotkey="d"/>-->
       </body>
       </html>
      
      
      
      
      When I delete a conversation using the delte button i get this exception:
      
      
      09:03:59,160 WARN [Interpolator] exception interpolating string: Reason: Confirm #{cRUDOrganisationController.mode} Organisation (#{organisation.name} )
       javax.faces.el.EvaluationException: Cannot get value for expression '#{cRUDOrganisationController.mode}'
       at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:402)
       at org.jboss.seam.core.Expressions$1.getValue(Expressions.java:53)
       at org.jboss.seam.core.Interpolator.interpolateExpressions(Interpolator.java:88)
       at org.jboss.seam.core.Interpolator.interpolate(Interpolator.java:67)
       at org.jboss.seam.pages.Page.renderDescription(Page.java:92)
       at org.jboss.seam.core.Manager.prepareBackswitch(Manager.java:1040)
       at org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:208)
       at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:57)
       at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:70)
       at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:373)
       at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCycle(BlockingServlet.java:457)
       at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:444)
       at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.executeRequest(BlockingServlet.java:324)
       at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:186)
       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)
       Caused by: javax.faces.el.EvaluationException: Exception getting value of property mode of base of type : org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$328f5bd2
       at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:96)
       at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:532)
       at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
       at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
       ... 33 more
       Caused by: javax.faces.el.EvaluationException: Bean: org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$328f5bd2, property: mode
       at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:442)
       at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82)
       ... 36 more
       Caused by: java.lang.reflect.InvocationTargetException
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438)
       ... 37 more
       Caused by: java.lang.IllegalStateException: no long-running conversation for @Conversational bean: cRUDOrganisationController
       at org.jboss.seam.interceptors.ConversationalInterceptor.checkConversationForConversationalBean(ConversationalInterceptor.java:52)
       at sun.reflect.GeneratedMethodAccessor329.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
       at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
       at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
       at sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
       at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
       at org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
       at org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
       at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
       at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
       at sun.reflect.GeneratedMethodAccessor273.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
       at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:71)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.tx.TxPolicy.invokeInNoTx(TxPolicy.java:66)
       at org.jboss.aspects.tx.TxInterceptor$NotSupported.invoke(TxInterceptor.java:112)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
       at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:203)
       at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
       at $Proxy127.getMode(Unknown Source)
       at nz.co.risingstars.actions.organisation.CRUDOrganisationController$$FastClassByCGLIB$$8fc00364.invoke(<generated>)
       at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
       at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:45)
       at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:74)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:55)
       at org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:40)
       at sun.reflect.GeneratedMethodAccessor274.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
       at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
       at org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
       at org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
       at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
       at org.jboss.seam.intercept.ClientSideInterceptor.interceptInvocation(ClientSideInterceptor.java:83)
       at org.jboss.seam.intercept.ClientSideInterceptor.intercept(ClientSideInterceptor.java:52)
       at org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$328f5bd2.getMode(<generated>)
       ... 42 more
      
      
      
      
      Which blows out IceFaces with:
      
      
      09:03:59,238 ERROR [[Blocking Servlet]] Servlet.service() for servlet Blocking Servlet threw exception
       java.lang.RuntimeException: viewNumber 1 update queue exceeded 16
       at com.icesoft.faces.webapp.xmlhttp.BlockingResponseState.writeElement(BlockingResponseState.java:188)
      
      
      
      
      From all this it looks like the conversation is still trying to be rendered in the "conversation list" even though it's "just" been "destroyed"?