Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-8097

NullPointerException in AMQP 1.0 plugin using OpenJDK

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: qpid-java-6.1.5
    • Fix Version/s: None
    • Component/s: Broker-J
    • Labels:
      None

      Description

      An unexpected NullPointerException occures in AMQP 1.0 plugin at the first attempt to connect to the broker using OpenJDK.

      The problem was found while running Qpid in unit tests that verify code communicated with the broker through AQMP. There is a test case that starts Qpid before each test and stops it after it. That test case verifies a module that establishes a connection with the broker. The broker refuses the connection because of NullPointerException (see the attached stacktrace). Using Oracle JDK all tests run fine.

      The first strange thing looks like this. Only a test that does the first attempt to connect always fails. The rest tests run successfully although Qpid are restarted. So the order of tests is not important. The project is built using Maven and all its plugins are run within a single process (without fork ability).

      The second strange thing is that the behaivor of Qpid slightly differs using two different OpenJDK versions.

      In a case of 1.8.0_131 version the broker accepts a transport connection but rejects "OPEN" frame with the next error:

      io.vertx.core.impl.NoStackTraceThrowable: Error{condition=amqp:not-found, description='Unknown hostname in connection open: 'default'', info=null}
      

       In a case of 1.8.0_161 version the broker rejects a transport connection instantly with the next exception:

      io.vertx.core.VertxException: Disconnected
       at io.vertx.proton.impl.ProtonClientImpl.lambda$null$0(ProtonClientImpl.java:80) ~[vertx-proton-3.5.0.jar:?]
       at io.vertx.proton.impl.ProtonConnectionImpl.fireDisconnect(ProtonConnectionImpl.java:374) ~[vertx-proton-3.5.0.jar:?]
       at io.vertx.proton.impl.ProtonTransport.handleSocketEnd(ProtonTransport.java:89) ~[vertx-proton-3.5.0.jar:?]
       at io.vertx.core.net.impl.NetSocketImpl.handleClosed(NetSocketImpl.java:345) ~[vertx-core-3.5.0.jar:?]
       at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:342) ~[vertx-core-3.5.0.jar:?]
       at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:200) [vertx-core-3.5.0.jar:?]
       at io.vertx.core.net.impl.VertxHandler.channelInactive(VertxHandler.java:134) [vertx-core-3.5.0.jar:?]
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:224) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1354) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:231) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:917) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:763) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403) [netty-common-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [netty-transport-4.1.15.Final.jar:4.1.15.Final]
       at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-common-4.1.15.Final.jar:4.1.15.Final]
       at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161-debug]

        Attachments

        1. Qpid stacktrace.txt
          12 kB
          Artyom Safronov

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              Artyom82 Artyom Safronov
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: