0 Replies Latest reply on Sep 25, 2012 5:36 AM by karl_zhang

    WELD-000215 Attempt to call end() on a transient conversation

    karl_zhang

      Dear All,

       

      I am now trying to migrate a application from JBoss4 to JBoss7.1.1. During the regression test I found the following exception in JBoss server log file:

      Session event listener threw exception: org.jboss.weld.exceptions.IllegalStateException: WELD-000215 Attempt to call end() on a transient conversation

              at org.jboss.weld.context.conversation.ConversationImpl.end(ConversationImpl.java:114) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

              at org.jboss.weld.context.AbstractConversationContext.destroy(AbstractConversationContext.java:303) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

              at org.jboss.weld.context.http.HttpConversationContextImpl.destroy(HttpConversationContextImpl.java:12) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

              at org.jboss.weld.context.http.HttpSessionContextImpl.destroy(HttpSessionContextImpl.java:61) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

              at org.jboss.weld.servlet.WeldListener.sessionDestroyed(WeldListener.java:88) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]

              at org.apache.catalina.session.StandardSession.expire(StandardSession.java:690) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.session.StandardSession.isValid(StandardSession.java:585) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:390) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:375) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) [jbossweb-7.0.13.Final.jar:]

              at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590) [jbossweb-7.0.13.Final.jar:]

              at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_04]

       

      I don't understand in what circumstance this could happen.

       

      If a bean was declared as long conversation through conversation.begin(), why it could become transient later?

       

      On the other hand, if a conversation bean was transient or a long conversation bean became transient by calling conversation.end(), why it will be handled by ConversationImpl?

       

      Could anyone give me an explanation? Thank you!

       

      Best Regards,

      Karl