Destroy conversation exception...
tony.herstell1 Feb 10, 2007 3:13 PMGiven:
<!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"?