Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-3215

EJB remote client context does not survive server restart

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • 7.1.0.Final
    • 7.1.0.CR1b
    • EJB
    • Hide

      1. git clone git@github.com:istudens/jboss-as.git
      2. cd jboss-as
      3. git checkout crash_rec_tests
      4. ./build.sh clean install -Dts.noSmoke -DskipTests
      5. cd testsuite/integration/jbossts
      6. mvn clean install -Dtest=EJBClientCrashTestCase

      Show
      1. git clone git@github.com:istudens/jboss-as.git 2. cd jboss-as 3. git checkout crash_rec_tests 4. ./build.sh clean install -Dts.noSmoke -DskipTests 5. cd testsuite/integration/jbossts 6. mvn clean install -Dtest=EJBClientCrashTestCase

      Let's say we have an AS7 server with a stateless bean deployed at it and a client application which:
      1. calls remotely the stateless bean
      2. restarts the server
      3. and calls the stateless bean again

      The first invocation of the stateless bean instantiates some static fields in EJBInvocationHandler, EJBClientContext, etc. like a new remote connection, an ejb receiver and so on, and returns a proxy for the bean and does the remote call successfully. But after the server is restarted, the second invocation of the stateless bean does not re-create/re-instantiate any new remote connection or other ejb client utils and fails with IllegalStateException: No EJB receiver available for handling ... combination. Note that EJBClientContext#ejbReceiverAssociations is empty at that time. See the following stacktrace snippet:

      java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:crash,distinctname:] combination
      	at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:344)
      	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:92)
      	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:83)
      	at $Proxy22.test(Unknown Source)
      	at org.jboss.as.test.jbossts.ejbclienttest.EJBClientCrashTestCase.testCrashOnClient(EJBClientCrashTestCase.java:103)
      

      Test-case for this issue can be found here:
      https://github.com/istudens/jboss-as/compare/crash_rec_tests#diff-36

      More detailed info how to reproduce the bug has been attached to 'Steps to Reproduce' of this jira.

              jaikiran Jaikiran Pai (Inactive)
              istudens@redhat.com Ivo Studensky
              Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: