3 Replies Latest reply on Mar 26, 2013 6:59 AM by jaikiran

    EAP 6.1.0 Alpha : Error using home interface in different thread

    millsp

      Created to supplement bug JBEAP-4.

       

      JBoss EAP 6.1.0.Alpha1 (AS 7.2.0.Alpha1-redhat-4) / java.runtime.version = 1.6.0_33-b03 / Windows 7 Professional SP1

       

      The only third party dependency is log4j-1.2.15.jar

       

      Problem:

       

      Using remoting (not the EJB client method with the external properties file) :

       

      Create an InitialContext, pass it to a new thread, look up a home interface for an SLSB, then try to use it to create a remote object in the same thread, the create fails.

       

      Create an InitialContext, perform a home lookup, pass the home to a new thread, try to use it to create a remote object, the create fails.

       

      Look up a home, create a remote from it, and pass to a new thread, SLSB method calls on this remote object fail.

       

      If you perform all these operations in the same thread they are OK.

       

      What error message do you see?

       

      1. java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:cp-model, moduleName:cp-model.jar, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@4cdada24

              at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:693)

              at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116)

              at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:177)

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:161)

              at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:124)

              at $Proxy0.create(Unknown Source)

              at com.cedar.cp.model.client.CPModelClientThreadRemoting$1.run(CPModelClientThreadRemoting.java:108)

       

      Is that the first error message? Yes

       

      Are there any related WARN messages? No

       

      Have you tried searching for that error message? Yes, inconclusively

       

      Is it actually a JBoss error message?  “EJBCLIENT000025”

       

      Have you included the deployment descriptors for the application with the problem?

       

      I can supply a server EAR / test client program to recreate

       

      What did you expect to happen?

       

      Remote object found, and SLSB method invoked, without IllegalStateExceptions

       

      How does your application differ from the many examples that work?

       

      It is passing a home reference to a new thread.  Our main commercial application is a Swing GUI and it does a lot of this.

       

      Have you enabled DEBUG or TRACE logging to see what is really happening?

       

      WORKING case :

       

      D:\projects\as72\tests>java -Durl=myhost:myport -Duser=appuser -Dpassword=passwd -Drun.test1=true -Drun.test2=true -Drun.test3=true -Dthreadit=false -jar cp-model-client-thread.jar

      CPModelClient : main() : ENTER

      Using REMOTING only ...

      log4j: reset attribute= "false".

      log4j: Threshold ="null".

      log4j: Retreiving an instance of org.apache.log4j.Logger.

      log4j: Setting [org.jboss.ejb.client] additivity to [true].

      log4j: Level value for org.jboss.ejb.client is  [TRACE].

      log4j: org.jboss.ejb.client level set to TRACE

      log4j: Retreiving an instance of org.apache.log4j.Logger.

      log4j: Setting [org.jboss.remote.naming] additivity to [true].

      log4j: Level value for org.jboss.remote.naming is  [TRACE].

      log4j: org.jboss.remote.naming level set to TRACE

      log4j: Class name: [org.apache.log4j.ConsoleAppender]

      log4j: Setting property [target] to [System.out].

      log4j: Setting property [threshold] to [ALL].

      log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"

      log4j: Setting property [conversionPattern] to [%d{ABSOLUTE} %-5p [%c{1}] %m%n].

      log4j: Adding appender named [CONSOLE] to category [root].

      16:36:33,160 DEBUG [logging] Logging Provider: org.jboss.logging.Log4jLoggerProvider

      16:36:33,174 DEBUG [InitialContextFactory] Looking for jboss-naming-client.properties using classloader sun.misc.Launcher$AppClassLoader@4aad3ba4

      16:36:33,179 DEBUG [InitialContextFactory] jboss.naming.client.endpoint.create.options. has the following options {}

      16:36:33,182 DEBUG [InitialContextFactory] jboss.naming.client.remote.connectionprovider.create.options. has the following options {}

      16:36:33,193 INFO  [xnio] XNIO Version 3.0.7.GA

      16:36:33,201 INFO  [nio] XNIO NIO Implementation Version 3.0.7.GA

      16:36:33,211 INFO  [remoting] JBoss Remoting version 3.2.14.GA

      16:36:33,240 DEBUG [nio] Started channel thread 'Remoting "config-based-naming-client-endpoint" read-1', selector sun.nio.ch.WindowsSelectorImpl@2adb1d4

      16:36:33,240 DEBUG [nio] Started channel thread 'Remoting "config-based-naming-client-endpoint" write-1', selector sun.nio.ch.WindowsSelectorImpl@5975d6ab

      16:36:33,283 DEBUG [InitialContextFactory] jboss.naming.client.connect.options. has the following options {}

      16:36:33,293 DEBUG [EJBClientPropertiesLoader] Looking for jboss-ejb-client.properties using classloader sun.misc.Launcher$AppClassLoader@4aad3ba4

      16:36:33,301 DEBUG [ConfigBasedEJBClientContextSelector] EJB client context org.jboss.ejb.client.EJBClientContext@3747c1db will have no EJB receivers associated with it since there was no EJB

      client configuration available to create the receivers

      CPModelClient : main() :... found context

      Case 1 but not using a new thread

      CPModelClient : main() :... found LOGIN SEJB Home

      16:36:33,521 DEBUG [RemotingConnectionEJBReceiver] Channel Channel ID 918dce05 (outbound) of Remoting connection 006e8f94 to myhost/myipaddr:myport opened for context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]} Waiting for version handshake message from server

      16:36:33,532 INFO  [remoting] EJBCLIENT000017: Received server version 1 and marshalling strategies [river]

      16:36:33,542 TRACE [ChannelAssociation] Received message with header 0x8

      16:36:33,542 INFO  [remoting] EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]} on channel Channel ID 918dce05 (outbound) of Remoting connection 006e8f94 to

      myhost/myipaddr:myport

      16:36:33,548 DEBUG [RemotingConnectionEJBReceiver] Received module availability report for 8 modules

      16:36:33,554 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='cp-model', moduleName='cp-model.war', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

      16:36:33,562 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='cp-model', moduleName='cp-model', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

       

      16:36:33,568 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='jsr-77', moduleName='jsr-77', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

      16:36:33,573 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='cp-model', moduleName='cp-model.jar', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

      16:36:33,579 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='abs', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

      16:36:33,584 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='dojo', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

      16:36:33,589 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='jquery', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

      16:36:33,593 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='dhtmlx', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@6f579a30, receiver=Remoting connection EJB receiver [connection=Remoting connection <7ca522a6>,channel=jboss.ejb,nodename=node1]}

      16:36:33,598 TRACE [ChannelAssociation] Received message with header 0xffffffff

      16:36:33,601 DEBUG [ChannelAssociation] Unsupported message received with header 0xffffffff

      16:36:33,606 DEBUG [EJBClientContext] org.jboss.ejb.client.RandomDeploymentNodeSelector@47db9852 deployment node selector selected node1 node for appname=cp-model,modulename=cp-model.jar,distinctname=

      16:36:33,622 TRACE [ChannelAssociation] Received message with header 0x5

      16:36:33,631 INFO  [client] JBoss EJB Client version 1.0.16.Final

      16:36:33,633 DEBUG [EJBClientContext] org.jboss.ejb.client.RandomDeploymentNodeSelector@47db9852 deployment node selector selected node1 node for appname=cp-model,modulename=cp-model.jar,distinctname=

      16:36:33,641 TRACE [ChannelAssociation] Received message with header 0x5

      CPModelClient : main() :... found LIST SEJB Home

      Case 2 but not using a new thread

      16:36:33,657 DEBUG [EJBClientContext] org.jboss.ejb.client.RandomDeploymentNodeSelector@47db9852 deployment node selector selected node1 node for appname=cp-model,modulename=cp-model.jar,distinctname=

      16:36:33,665 TRACE [ChannelAssociation] Received message with header 0x5

      16:36:33,671 DEBUG [EJBClientContext] org.jboss.ejb.client.RandomDeploymentNodeSelector@47db9852 deployment node selector selected node1 node for appname=cp-model,modulename=cp-model.jar,distinctname=

      16:36:33,677 TRACE [ChannelAssociation] Received message with header 0x5

      CPModelClient : main() :... found MODEL SEJB Home

      16:36:33,689 DEBUG [EJBClientContext] org.jboss.ejb.client.RandomDeploymentNodeSelector@47db9852 deployment node selector selected node1 node for appname=cp-model,modulename=cp-model.jar,distinctname=

      16:36:33,699 TRACE [ChannelAssociation] Received message with header 0x5

      Case 3 but not using a new thread

      16:36:33,708 DEBUG [EJBClientContext] org.jboss.ejb.client.RandomDeploymentNodeSelector@47db9852 deployment node selector selected node1 node for appname=cp-model,modulename=cp-model.jar,distinctname=

      16:36:33,717 TRACE [ChannelAssociation] Received message with header 0x5

      CPModelClient : main() : EXIT

      16:36:33,728 INFO  [remoting] EJBCLIENT000016: Channel Channel ID 918dce05 (outbound) of Remoting connection 006e8f94 to null can no longer process messages

      16:36:33,731 DEBUG [RemotingConnectionEJBReceiver] Closing channelChannel ID 918dce05 (outbound) of Remoting connection 006e8f94 to null

      16:36:33,734 DEBUG [ChannelAssociation] Closing channel Channel ID 918dce05 (outbound) of Remoting connection 006e8f94 to null

      16:36:33,738 ERROR [RemoteNamingStoreV1] Channel end notification received, closing channel Channel ID d1161553 (outbound) of Remoting connection 006e8f94 to null

       

       

      FAILING case :

       

      D:\projects\as72\tests>java -Durl=myhost:myport -Duser=appuser -Dpassword=passwd -Drun.test1=true -Drun.test2=true -Drun.test3=true -Dthreadit=true -jar cp-model-client-thread.jar

      CPModelClient : main() : ENTER

      Using REMOTING only ...

      log4j: reset attribute= "false".

      log4j: Threshold ="null".

      log4j: Retreiving an instance of org.apache.log4j.Logger.

      log4j: Setting [org.jboss.ejb.client] additivity to [true].

      log4j: Level value for org.jboss.ejb.client is  [TRACE].

      log4j: org.jboss.ejb.client level set to TRACE

      log4j: Retreiving an instance of org.apache.log4j.Logger.

      log4j: Setting [org.jboss.remote.naming] additivity to [true].

      log4j: Level value for org.jboss.remote.naming is  [TRACE].

      log4j: org.jboss.remote.naming level set to TRACE

      log4j: Class name: [org.apache.log4j.ConsoleAppender]

      log4j: Setting property [target] to [System.out].

      log4j: Setting property [threshold] to [ALL].

      log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"

      log4j: Setting property [conversionPattern] to [%d{ABSOLUTE} %-5p [%c{1}] %m%n].

      log4j: Adding appender named [CONSOLE] to category [root].

      16:39:36,552 DEBUG [logging] Logging Provider: org.jboss.logging.Log4jLoggerProvider

      16:39:36,566 DEBUG [InitialContextFactory] Looking for jboss-naming-client.properties using classloader sun.misc.Launcher$AppClassLoader@4aad3ba4

      16:39:36,571 DEBUG [InitialContextFactory] jboss.naming.client.endpoint.create.options. has the following options {}

      16:39:36,574 DEBUG [InitialContextFactory] jboss.naming.client.remote.connectionprovider.create.options. has the following options {}

      16:39:36,585 INFO  [xnio] XNIO Version 3.0.7.GA

      16:39:36,592 INFO  [nio] XNIO NIO Implementation Version 3.0.7.GA

      16:39:36,602 INFO  [remoting] JBoss Remoting version 3.2.14.GA

      16:39:36,630 DEBUG [nio] Started channel thread 'Remoting "config-based-naming-client-endpoint" read-1', selector sun.nio.ch.WindowsSelectorImpl@5975d6ab

      16:39:36,630 DEBUG [nio] Started channel thread 'Remoting "config-based-naming-client-endpoint" write-1', selector sun.nio.ch.WindowsSelectorImpl@4760a26f

      16:39:36,673 DEBUG [InitialContextFactory] jboss.naming.client.connect.options. has the following options {}

      16:39:36,683 DEBUG [EJBClientPropertiesLoader] Looking for jboss-ejb-client.properties using classloader sun.misc.Launcher$AppClassLoader@4aad3ba4

      16:39:36,691 DEBUG [ConfigBasedEJBClientContextSelector] EJB client context org.jboss.ejb.client.EJBClientContext@48082d37 will have no EJB receivers associated with it since there was no EJB

      client configuration available to create the receivers

      CPModelClient : main() :... found context

      Case 1.  Got context, but get home & remote i/fs inside a new thread

      CPModelClient : main() :... found LIST SEJB Home

      CPModelClient : main() :... found LOGIN SEJB Home

      Case 2.  Got home i/f, but get remote i/f inside a new thread

      CPModelClient : main() :... found MODEL SEJB Home

      1. java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:cp-model, moduleName:cp-model.jar, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@3cecb67f

              at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:693)

              at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116)

              at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)

      16:39:36,931 DEBUG [RemotingConnectionEJBReceiver] Channel Channel ID c76f8eb1 (outbound) of Remoting connection 0b0c0f66 to myhost/myipaddr:myport opened for context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]} Waiting for version handshake message from server

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:177)

      16:39:36,942 INFO  [remoting] EJBCLIENT000017: Received server version 1 and marshalling strategies [river]

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:161)

              at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:124)

              at $Proxy0.create(Unknown Source)

              at com.cedar.cp.model.client.CPModelClientThreadRemoting$1.run(CPModelClientThreadRemoting.java:108)

      1. java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:cp-model, moduleName:cp-model.jar, distinctName:] combination for invocation context org.jboss

      .ejb.client.EJBClientInvocationContext@58c16b18

      16:39:36,961 TRACE [ChannelAssociation] Received message with header 0x8

              at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:693)

      16:39:36,962 INFO  [remoting] EJBCLIENT000013: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]} on channel Channel ID c76f8eb1 (outbound) of Remoting connection 0b0c0f66 to

      myhost/myipaddr:myport

              at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116)

      16:39:36,972 DEBUG [RemotingConnectionEJBReceiver] Received module availability report for 8 modules

              at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)

      16:39:36,984 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='cp-model', moduleName='cp-model.war', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:177)

      16:39:36,995 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='cp-model', moduleName='cp-model', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:161)

      16:39:37,001 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='jsr-77', moduleName='jsr-77', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

              at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:124)16:39:37,009 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='cp-model', moduleName='cp-model.jar', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

       

      16:39:37,016 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='abs', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

              at $Proxy1.create(Unknown Source)

      16:39:37,023 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='dojo', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

              at com.cedar.cp.model.client.CPModelClientThreadRemoting$2.run(CPModelClientThreadRemoting.java:140)

      16:39:37,031 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='jquery', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

      16:39:37,038 DEBUG [RemotingConnectionEJBReceiver] Registering module EJBModuleIdentifier{appName='', moduleName='dhtmlx', distinctName=''} availability for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@120540c, receiver=Remoting connection EJB receiver [connection=Remoting connection <3d860038>,channel=jboss.ejb,nodename=node1]}

      16:39:37,043 TRACE [ChannelAssociation] Received message with header 0xffffffff

      16:39:37,044 DEBUG [EJBClientContext] org.jboss.ejb.client.RandomDeploymentNodeSelector@664310d0 deployment node selector selected node1 node for appname=cp-model,modulename=cp-model.jar,distinctname=

      16:39:37,045 DEBUG [ChannelAssociation] Unsupported message received with header 0xffffffff

      16:39:37,065 TRACE [ChannelAssociation] Received message with header 0x5

      16:39:37,076 INFO  [client] JBoss EJB Client version 1.0.16.Final

      CPModelClient : main() : EXIT

      Case 3.  Invoke method on remote i/f inside a new thread

      1. java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:cp-model, moduleName:cp-model.jar, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@55f157b

              at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:693)

              at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:116)

              at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:183)

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:177)

              at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:161)

              at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:124)

              at $Proxy3.getItemData(Unknown Source)

              at com.cedar.cp.model.client.CPModelClientThreadRemoting$3.run(CPModelClientThreadRemoting.java:171)

      16:39:37,134 INFO  [remoting] EJBCLIENT000016: Channel Channel ID c76f8eb1 (outbound) of Remoting connection 0b0c0f66 to null can no longer process messages

      16:39:37,136 DEBUG [RemotingConnectionEJBReceiver] Closing channelChannel ID c76f8eb1 (outbound) of Remoting connection 0b0c0f66 to null

      16:39:37,139 DEBUG [ChannelAssociation] Closing channel Channel ID c76f8eb1 (outbound) of Remoting connection 0b0c0f66 to null

      16:39:37,143 ERROR [RemoteNamingStoreV1] Channel end notification received, closing channel Channel ID d409194a (outbound) of Remoting connection 0b0c0f66 to null

       

      Do you have a simple test that reproduces the "bug"? Yes, can supply EAR / JARs on demand but this is the gist of it :

       

      Properties contextProps = new Properties();

      contextProps.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory" );

      contextProps.put("jboss.naming.client.ejb.context", true);

      contextProps.put(Context.SECURITY_PRINCIPAL, usr );

      contextProps.put(Context.SECURITY_CREDENTIALS, pwd );

      contextProps.put(Context.PROVIDER_URL, "remote://" + url );

       

      final InitialContext ic = new InitialContext( contextProps );

      System.out.println( "CPModelClient : main() :... found context");

       

      Thread t1 = new Thread(){

            public void run()

            {

                 try

                 {

                      System.out.println( "Case 1.  Got context, but get home & remote i/fs inside a new thread");

                      CPLoginSessionHome lohome = (CPLoginSessionHome) PortableRemoteObject.narrow(ic.lookup( LOGIN_SLSB_REMOTE_JNDI ), CPLoginSessionHome.class);

                      System.out.println( "CPModelClient : main() :... found LOGIN SEJB Home");

                      CPLoginSessionRemote lormt = (CPLoginSessionRemote) lohome.create(); // line 108

                      lormt.login();

                 }

                 catch ( Exception e ) { e.printStackTrace(); }

            }

      };

      t1.start();

       

      final CPListSessionHome lihome = (CPListSessionHome) PortableRemoteObject.narrow(ic.lookup( LIST_SLSB_REMOTE_JNDI ), CPListSessionHome.class);

      Thread t2 = new Thread(){

            public void run()

            {

                  try

                  {

                        System.out.println( "Case 2.  Got home i/f, but get remote i/f inside a new thread");

                        CPListSessionRemote lirmt = lihome.create(); // line 140

                        lirmt.listThings();

                  }

                  catch ( Exception e ) { e.printStackTrace(); }

            }

      };

      t2.start();

       

      If these calls are executed in the same thread, they work fine.