Sebastian T created QPIDJMS-486:
-----------------------------------
Summary: Cannot use connection URL with failover provider and
custom cipher suites
Key: QPIDJMS-486
URL: https://issues.apache.org/jira/browse/QPIDJMS-486
Project: Qpid JMS
Issue Type: Bug
Components: qpid-jms-client
Affects Versions: 0.48.0
Reporter: Sebastian T
Example URL:
{code:java}
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
{code}
Error Message:
{code:java}
[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)
{code}
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.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]