Details
-
Bug
-
Resolution: Done
-
Minor
-
AMQ 7.6.0.GA, AMQ 7.7.0.CR1
-
None
Description
In testing acceptor functionality rvais saw the following acceptor definition when using amqp, openwire and core:
<acceptor name="all">tcp://ex-aao-ss-1.ex-aao-hdls-svc.broker-operator-ssl.svc.cluster.local:61616?protocols=CORE,AMQP,OPENWIRE,CORE;sslEnabled=true;keyStorePath=/etc/ex-aao-all-secret-volume/broker.ks;keyStorePassword=password;trustStorePath=/etc/ex-aao-all-secret-volume/client.ts;trustStorePassword=password;enabledCipherSuites=SSL_RSA_WITH_RC4_128_SHA,SSL_DH_anon_WITH_3DES_EDE_CBC_SHA;enabledProtocols=TLSv1,TLSv1.1,TLSv1.2;sslProvider=JDK;anycastPrefix=jms.topic.;multicastPrefix=/queue/;tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;useEpoll=true;amqpCredits=1000;amqpMinCredits=300</acceptor>
Note the following snippet:
protocols=CORE,AMQP,OPENWIRE,CORE
Here CORE is specified twice incorrectly. Looking at the code we see the following:
if ensureCOREOn61616Exists && (61616 == acceptor.Port) && !strings.Contains(acceptor.Protocols, "CORE") { acceptorEntry = acceptorEntry + ",CORE" }
Where a check is made to ensure we have core protocol available on 61616 for clustering purposes. However, a ToLower is not done on the string first likely causing the string comparison to fail.