Uploaded image for project: 'AMQ Clients'
  1. AMQ Clients
  2. ENTMQCL-280

Qpid JMS client should throw port out of range exception, not hostname is null, when port number is too big

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Minor
    • 1.1.0-alpha
    • 1.0.0-GA
    • qpid-jms
    • None
    • Compatibility/Configuration, User Experience
    • Hide

      1) Create a connection with a big port number
      sh aac1_sender.java.sh --log-msg dict -b "localhost:567564562" -a "examples"
      javax.jms.JMSException: port out of range:567564562
      at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:77)
      at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:183)
      at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:165)
      at com.redhat.mqe.jms.ConnectionManager.<init>(ConnectionManager.java:83)
      at com.redhat.mqe.jms.CoreClient.createConnection(CoreClient.java:77)
      at com.redhat.mqe.jms.SenderClient.startClient(SenderClient.java:48)
      at com.redhat.mqe.jms.aac1_sender.main(aac1_sender.java:11)
      Caused by: java.lang.IllegalArgumentException: port out of range:567564562
      at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143)
      at java.net.InetSocketAddress.<init>(InetSocketAddress.java:224)
      at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:96)
      at org.apache.qpid.jms.transports.netty.NettyTcpTransport.connect(NettyTcpTransport.java:118)
      at org.apache.qpid.jms.provider.amqp.AmqpProvider.connect(AmqpProvider.java:157)
      at org.apache.qpid.jms.JmsConnectionFactory.createProvider(JmsConnectionFactory.java:253)
      at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:179)
      ... 5 more

      This is correct exception.

      2) Add trailing "2" into the above command on port. (make it one digit bigger)
      sh aac1_sender.java.sh --log-msg dict -b "localhost:5675645622" -a "examples"
      javax.jms.JMSException: hostname can't be null
      at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:77)
      at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:183)
      at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:165)
      at com.redhat.mqe.jms.ConnectionManager.<init>(ConnectionManager.java:83)
      at com.redhat.mqe.jms.CoreClient.createConnection(CoreClient.java:77)
      at com.redhat.mqe.jms.SenderClient.startClient(SenderClient.java:48)
      at com.redhat.mqe.jms.aac1_sender.main(aac1_sender.java:11)
      Caused by: java.lang.IllegalArgumentException: hostname can't be null
      at java.net.InetSocketAddress.checkHost(InetSocketAddress.java:149)
      at java.net.InetSocketAddress.<init>(InetSocketAddress.java:216)
      at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:96)
      at org.apache.qpid.jms.transports.netty.NettyTcpTransport.connect(NettyTcpTransport.java:118)
      at org.apache.qpid.jms.provider.amqp.AmqpProvider.connect(AmqpProvider.java:157)
      at org.apache.qpid.jms.JmsConnectionFactory.createProvider(JmsConnectionFactory.java:253)
      at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:179)
      ... 5 more

      Same error as in 1) should be thrown. Hostname is not null.

      Show
      1) Create a connection with a big port number sh aac1_sender.java.sh --log-msg dict -b "localhost:567564562" -a "examples" javax.jms.JMSException: port out of range:567564562 at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:77) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:183) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:165) at com.redhat.mqe.jms.ConnectionManager.<init>(ConnectionManager.java:83) at com.redhat.mqe.jms.CoreClient.createConnection(CoreClient.java:77) at com.redhat.mqe.jms.SenderClient.startClient(SenderClient.java:48) at com.redhat.mqe.jms.aac1_sender.main(aac1_sender.java:11) Caused by: java.lang.IllegalArgumentException: port out of range:567564562 at java.net.InetSocketAddress.checkPort(InetSocketAddress.java:143) at java.net.InetSocketAddress.<init>(InetSocketAddress.java:224) at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:96) at org.apache.qpid.jms.transports.netty.NettyTcpTransport.connect(NettyTcpTransport.java:118) at org.apache.qpid.jms.provider.amqp.AmqpProvider.connect(AmqpProvider.java:157) at org.apache.qpid.jms.JmsConnectionFactory.createProvider(JmsConnectionFactory.java:253) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:179) ... 5 more This is correct exception. 2) Add trailing "2" into the above command on port. (make it one digit bigger) sh aac1_sender.java.sh --log-msg dict -b "localhost:5675645622" -a "examples" javax.jms.JMSException: hostname can't be null at org.apache.qpid.jms.exceptions.JmsExceptionSupport.create(JmsExceptionSupport.java:77) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:183) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:165) at com.redhat.mqe.jms.ConnectionManager.<init>(ConnectionManager.java:83) at com.redhat.mqe.jms.CoreClient.createConnection(CoreClient.java:77) at com.redhat.mqe.jms.SenderClient.startClient(SenderClient.java:48) at com.redhat.mqe.jms.aac1_sender.main(aac1_sender.java:11) Caused by: java.lang.IllegalArgumentException: hostname can't be null at java.net.InetSocketAddress.checkHost(InetSocketAddress.java:149) at java.net.InetSocketAddress.<init>(InetSocketAddress.java:216) at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:96) at org.apache.qpid.jms.transports.netty.NettyTcpTransport.connect(NettyTcpTransport.java:118) at org.apache.qpid.jms.provider.amqp.AmqpProvider.connect(AmqpProvider.java:157) at org.apache.qpid.jms.JmsConnectionFactory.createProvider(JmsConnectionFactory.java:253) at org.apache.qpid.jms.JmsConnectionFactory.createConnection(JmsConnectionFactory.java:179) ... 5 more Same error as in 1) should be thrown. Hostname is not null.

    Description

      The JMS client host port parsing is probably wrong. Apart from using too high port number, the error exception message should be always the same.
      "Caused by: java.lang.IllegalArgumentException: port out of range:567564562"
      not
      "Caused by: java.lang.IllegalArgumentException: hostname can't be null"

      Attachments

        Issue Links

          Activity

            People

              tbish@redhat.com Timothy Bish (Inactive)
              mtoth@redhat.com Michal Toth
              Michal Toth Michal Toth
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: