Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-10963

Wrong URI protocol in EJB client context produces StackOverflowException with EJB Client 4

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Critical Critical
    • 7.1.0.ER1
    • 7.1.0.DR18
    • EJB
    • None
    • User Experience
    • Regression
    • Hide

      Run the artifact in attached zip.

      To verify the fix, replace wildfly-ejb-client-bom version in client/pom.xml with 7.1.0.Beta1-redhat-5.

      Show
      Run the artifact in attached zip. To verify the fix, replace wildfly-ejb-client-bom version in client/pom.xml with 7.1.0.Beta1-redhat-5 .

      Upon inputting invalid protocol in EJB client initial context, a StackOverflowException is produced instead of a proper exception:

      14:08:20,201 INFO  [org.jboss.ejb.client.naming.ejb.ejbURLContextFactory:37] EJBCLIENT000064: org.jboss.ejb.client.naming.ejb.ejbURLContextFactory is deprecated; new applications should use org.wildfly.naming.client.WildFlyInitialContextFactory instead
      14:08:20,210 INFO  [org.wildfly.naming.client.Version:61] WildFly Naming version 1.0.0.Beta15-redhat-1
      14:08:20,265 INFO  [org.wildfly.naming.client.WildFlyRootContext:521] WFNAM00049: Usage of the legacy "remote.connections" property is deprecated; please use javax.naming.Context#PROVIDER_URL instead
      14:08:20,300 INFO  [org.xnio.Xnio:95] XNIO version 3.5.0.Beta6-redhat-1
      14:08:20,306 INFO  [org.xnio.nio.NioXnio:57] XNIO NIO Implementation Version 3.5.0.Beta6-redhat-1
      14:08:20,366 INFO  [org.jboss.remoting3.EndpointImpl:101] JBoss Remoting version 5.0.0.Beta22-redhat-1
      Exception in thread "main" java.lang.StackOverflowError
      	at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
      	at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
      	at java.io.File.exists(File.java:819)
      	at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1282)
      	at sun.misc.URLClassPath$FileLoader.findResource(URLClassPath.java:1249)
      	at sun.misc.URLClassPath$1.next(URLClassPath.java:267)
      	at sun.misc.URLClassPath$1.hasMoreElements(URLClassPath.java:277)
      	at java.net.URLClassLoader$3$1.run(URLClassLoader.java:601)
      	at java.net.URLClassLoader$3$1.run(URLClassLoader.java:599)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.net.URLClassLoader$3.next(URLClassLoader.java:598)
      	at java.net.URLClassLoader$3.hasMoreElements(URLClassLoader.java:623)
      	at sun.misc.CompoundEnumeration.next(CompoundEnumeration.java:45)
      	at sun.misc.CompoundEnumeration.hasMoreElements(CompoundEnumeration.java:54)
      	at java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:354)
      	at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393)
      	at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474)
      	at org.wildfly.naming.client.WildFlyRootContext.lambda$loadServices$0(WildFlyRootContext.java:110)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at org.wildfly.naming.client.WildFlyRootContext.loadServices(WildFlyRootContext.java:106)
      	at org.wildfly.naming.client.WildFlyRootContext.<init>(WildFlyRootContext.java:101)
      	at org.wildfly.naming.client.WildFlyRootContext.<init>(WildFlyRootContext.java:90)
      	at org.wildfly.naming.client.WildFlyInitialContextFactory.getInitialContext(WildFlyInitialContextFactory.java:58)
      	at org.jboss.ejb.client.naming.ejb.ejbURLContextFactory.getObjectInstance(ejbURLContextFactory.java:43)
      	at javax.naming.spi.NamingManager.getURLObject(NamingManager.java:601)
      	at javax.naming.spi.NamingManager.getURLContext(NamingManager.java:550)
      	at org.wildfly.naming.client.WildFlyRootContext.getProviderContext(WildFlyRootContext.java:485)
      	at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:149)
      	at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:151)
      	at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:151)
      	at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:151)
      	at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:151)
      	at org.wildfly.naming.client.WildFlyRootContext.lookup(WildFlyRootContext.java:151)
              .
              .
              .
      

      With EJB Client 2, the following understandable message was produced:

      14:08:36,418 TRACE [org.jboss.ejb.client.naming.ejb.EjbNamingContext:149] Created scoped EJB client context with identifier: [Named EJB client context identifier: EJBClientContext$1] for EJB naming context org.jboss.ejb.client.naming.ejb.EjbNamingContext@6a2bcfcb with environment {remote.connection.main.port=4448, remote.connection.main.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false, org.jboss.ejb.client.scoped.context=true, remote.connection.main.connect.options.org.xnio.Options.SSL_ENABLED=true, endpoint.name=client-endpoint, remote.connection.main.connect.options.org.xnio.Options.SSL_STARTTLS=true, remote.connection.main.protocol=xx, org.jboss.ejb.client.scoped.context.identifier=[Named EJB client context identifier: EJBClientContext$1], remote.connection.main.connect.options.org.xnio.Options.SASL_POLICY_NOPLAINTEXT=true, java.naming.factory.url.pkgs=org.jboss.ejb.client.naming, remote.connection.main.host=127.0.0.1, remote.connections=main}
      14:08:36,427 INFO  [org.jboss.ejb.client.EJBClient:45] JBoss EJB Client version 2.1.4.Final-redhat-1
      14:08:36,434 TRACE [org.jboss.ejb.client.EJBClientContext:1222] EJB client context org.jboss.ejb.client.EJBClientContext@6a024a67 attempting reconnect on thread main
      14:08:36,436 DEBUG [org.jboss.ejb.client.remoting.MaxAttemptsReconnectHandler:70] Re-connect attempt# 1 failed for 127.0.0.1:4448
      org.jboss.remoting3.UnknownURISchemeException: No connection provider for URI scheme "xx" is installed
      	at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:289)
      	at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:416)
      	at org.jboss.ejb.client.remoting.EndpointPool$PooledEndpoint.connect(EndpointPool.java:192)
      	at org.jboss.ejb.client.remoting.NetworkUtil.connect(NetworkUtil.java:153)
      	at org.jboss.ejb.client.remoting.NetworkUtil.connect(NetworkUtil.java:133)
      	at org.jboss.ejb.client.remoting.ConnectionPool.getConnection(ConnectionPool.java:78)
      	at org.jboss.ejb.client.remoting.RemotingConnectionManager.getConnection(RemotingConnectionManager.java:51)
      	at org.jboss.ejb.client.remoting.MaxAttemptsReconnectHandler.tryConnect(MaxAttemptsReconnectHandler.java:65)
      	at org.jboss.ejb.client.remoting.EJBClientContextConnectionReconnectHandler.reconnect(EJBClientContextConnectionReconnectHandler.java:56)
      	at org.jboss.ejb.client.EJBClientContext$ReconnectAttempt.run(EJBClientContext.java:1447)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:748)
      14:08:36,436 TRACE [org.jboss.ejb.client.EJBClientContext:1247] Reconnection attempt for EJB client context org.jboss.ejb.client.EJBClientContext@6a024a67 complete on thread main
      Exception in thread "main" java.lang.IllegalStateException: EJBCLIENT000025: No EJB receiver available for handling [appName:, moduleName:server, distinctName:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@6093dd95
      	at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:798)
      	at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:128)
      	at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)
      	at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:255)
      	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:200)
      	at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:183)
      	at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:146)
      	at com.sun.proxy.$Proxy2.hello(Unknown Source)
      	at client.Client.main(Client.java:16)
      

            rhn-support-iweiss Ingo Weiss
            mjurc@redhat.com Michal Jurc
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved:

                Estimated:
                Original Estimate - 1 day
                1d
                Remaining:
                Remaining Estimate - 1 day
                1d
                Logged:
                Time Spent - Not Specified
                Not Specified