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

[Java Broker] JMX Management can cause NPE in case of premature shutdown

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.25
    • 0.25
    • Broker-J
    • None

    Description

      As highlighted by the BDB HA Management tests on Jenkins CI, if the broker needs to shutdown prematurely during its startup sequence, the stopping of the JMXManagement module may cause a spurious NPE.

      BROKER: UNKNOWN nodetestRestartNodeWithNewPortNumberWithoutFirstCallingUpdateAddressThrowsAnException10005(-1) 2013-10-16 02:19:46,749 DEBUG [server.configuration.updater.TaskExecutor] Performing task ChangeStateTask [object=BrokerAdapter [id=9bb0597b-4809-4245-890b-c4e48a7f3a14, name=Broker], expectedState=null, desiredState=STOPPED]
      BROKER: UNKNOWN nodetestRestartNodeWithNewPortNumberWithoutFirstCallingUpdateAddressThrowsAnException10005(-1) 2013-10-16 02:19:46,752 ERROR [server.model.adapter.BrokerAdapter] Failed to stop JMXManagement [id=89ff5ea6-9cbe-48ef-8b7d-41bb05a3e21f, name=MANAGEMENT-JMX]
      BROKER: java.lang.NullPointerException
      BROKER:         at org.apache.qpid.server.jmx.JMXManagement.stop(JMXManagement.java:233)
      BROKER:         at org.apache.qpid.server.jmx.JMXManagement.setState(JMXManagement.java:119)
      BROKER:         at org.apache.qpid.server.model.adapter.AbstractAdapter.setDesiredState(AbstractAdapter.java:122)
      BROKER:         at org.apache.qpid.server.model.adapter.BrokerAdapter.changeState(BrokerAdapter.java:919)
      BROKER:         at org.apache.qpid.server.model.adapter.BrokerAdapter.setState(BrokerAdapter.java:892)
      BROKER:         at org.apache.qpid.server.model.adapter.AbstractAdapter.setDesiredState(AbstractAdapter.java:122)
      BROKER:         at org.apache.qpid.server.configuration.updater.ChangeStateTask.call(ChangeStateTask.java:59)
      BROKER:         at org.apache.qpid.server.configuration.updater.ChangeStateTask.call(ChangeStateTask.java:28)
      BROKER:         at org.apache.qpid.server.configuration.updater.TaskExecutor.executeTask(TaskExecutor.java:213)
      BROKER:         at org.apache.qpid.server.configuration.updater.TaskExecutor.access$200(TaskExecutor.java:46)
      BROKER:         at org.apache.qpid.server.configuration.updater.TaskExecutor$CallableWrapper$1.run(TaskExecutor.java:252)
      BROKER:         at java.security.AccessController.doPrivileged(Native Method)
      BROKER:         at javax.security.auth.Subject.doAs(Subject.java:396)
      BROKER:         at org.apache.qpid.server.configuration.updater.TaskExecutor$CallableWrapper.call(TaskExecutor.java:247)
      BROKER:         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      BROKER:         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      BROKER:         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      BROKER:         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      BROKER:         at java.lang.Thread.run(Thread.java:662)
      

      Attachments

        Activity

          People

            orudyy Alex Rudyy
            kwall Keith Wall
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: