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]

Reply via email to