Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
0.48.0
-
None
-
None
Description
Example URL:
failover:(amqps://mybroker.local:5671?transport.connectTimeout=15000&transport.soLinger=10000&transport.tcpNoDelay=true&transport.sendBufferSize=65536&transport.receiveBufferSize=65536&transport.useOpenSSL=true&transport.contextProtocol=TLSv1.2&transport.enabledCipherSuites=TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384&transport.keyStoreType=JKS&transport.keyStoreLocation=/C:/Temp/keystore-store.jks&transport.keyStorePassword=REPLACE_ME&transport.trustStoreType=jks&transport.trustStoreLocation=/C:/Temp/trust-store.jks&transport.trustStorePassword=REPLACE_ME&amqp.maxFrameSize=102400&amqp.vhost=mybroker.local&amqp.drainTimeout=60000&amqp.idleTimeout=60000&amqp.saslLayer=true&amqp.saslMechanisms=EXTERNAL)?failover.maxReconnectAttempts=-1&failover.startupMaxReconnectAttempts=3&failover.warnAfterReconnectAttempts=1&jms.populateJMSXUserID=true&jms.localMessageExpiry=true&jms.requestTimeout=60000&jms.sendTimeout=60000&jms.receiveNoWaitLocalOnly=true&jms.validatePropertyNames=false&jms.redeliveryPolicy.maxRedeliveries=0&jms.redeliveryPolicy.outcome=REJECTED&jms.presettlePolicy.presettleAll=false
Error Message:
[FailoverProvider: async work thread] INFO FailoverProvider - Connection attempt:[1] to: amqps://mybroker.local:5671 failed [FailoverProvider: async work thread] ERROR ProviderFactory - Failed to create Provider instance for null, due to: {} java.io.IOException: No Provider scheme specified. at org.apache.qpid.jms.provider.ProviderFactory.findProviderFactory(ProviderFactory.java:149) at org.apache.qpid.jms.provider.ProviderFactory.findProviderFactory(ProviderFactory.java:131) at org.apache.qpid.jms.provider.ProviderFactory.create(ProviderFactory.java:102) at org.apache.qpid.jms.provider.failover.FailoverProvider$14.run(FailoverProvider.java:746) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) [FailoverProvider: async work thread] INFO FailoverProvider - Connection attempt:[1] to: null://null:-1 failed [FailoverProvider: async work thread] WARN FailoverProvider - Failed to connect after: 1 attempt(s) continuing to retry. [FailoverProvider: async work thread] INFO FailoverProvider - Connection attempt:[2] to: amqps://mybroker.local:5671 failed [FailoverProvider: async work thread] ERROR ProviderFactory - Failed to create Provider instance for null, due to: {} java.io.IOException: No Provider scheme specified. at org.apache.qpid.jms.provider.ProviderFactory.findProviderFactory(ProviderFactory.java:149) at org.apache.qpid.jms.provider.ProviderFactory.findProviderFactory(ProviderFactory.java:131) at org.apache.qpid.jms.provider.ProviderFactory.create(ProviderFactory.java:102) at org.apache.qpid.jms.provider.failover.FailoverProvider$14.run(FailoverProvider.java:746) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
I guess the problem is that the transport.enabledCipherSuites option contains a comma which is interpreted by the failover provider as the start of the URL of a secondary broker address.
I tried to escape the comma as %26 but that didn't make a difference.