Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-9405

NPE when trying to remove an EJB subsystem channel-creation-options resource

    Details

    • Workaround:
      Workaround Exists
    • Workaround Description:
      Hide

      Put the server in admin-only mode before removing the subsystem.

      [standalone@localhost:9990 /] reload --admin-only=true
      [standalone@localhost:9990 /] /subsystem=ejb3:remove
      {"outcome" => "success"}
      

      Putting the server in admin-only before doing this kind of surgery is a good idea anyway.

      Show
      Put the server in admin-only mode before removing the subsystem. [standalone@localhost:9990 /] reload --admin-only= true [standalone@localhost:9990 /] /subsystem=ejb3:remove { "outcome" => "success" } Putting the server in admin-only before doing this kind of surgery is a good idea anyway.

      Description

      This fails:

      [standalone@localhost:9990 /] /subsystem=ejb3:remove
      {
          "outcome" => "failed",
          "failure-description" => "WFLYCTL0158: Operation handler failed: java.lang.NullPointerException",
          "rolled-back" => true
      }
      

      with this in the server log:

      15:53:42,572 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 4) WFLYCTL0013: Operation ("remove") failed - address: ([
          ("subsystem" => "ejb3"),
          ("service" => "remote"),
          ("channel-creation-options" => "MAX_OUTBOUND_MESSAGES")
      ]): java.lang.NullPointerException
      	at org.jboss.as.controller.OperationContextImpl.readResourceFromRoot(OperationContextImpl.java:894)
      	at org.jboss.as.controller.OperationContextImpl.readResourceFromRoot(OperationContextImpl.java:884)
      	at org.jboss.as.controller.RestartParentResourceHandlerBase.getModel(RestartParentResourceHandlerBase.java:216)
      	at org.jboss.as.controller.RestartParentResourceHandlerBase.access$000(RestartParentResourceHandlerBase.java:39)
      	at org.jboss.as.controller.RestartParentResourceHandlerBase$1.execute(RestartParentResourceHandlerBase.java:66)
      	at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:980)
      	at org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:726)
      	at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:450)
      	at org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1402)
      	at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:418)
      ...
      

      I believe a post-boot add of this resource would fail as well.

      Problem is ChannelCreationOptionRemove and ChannelCreationOptionAdd in RemoteConnectorChannelCreationOptionResource use an incorrect parentKeyName. These handlers extend RestartParentResourceHandlerBase but are passing the value of the parent element as "parentKeyName" instead of its key; i.e. "remote" instead of "service".

      Even though this code has been like this since 2012, this is somewhat a regression since before the current version our standard configs did not include resources of this type. So users could hit this in previous releases but now they are more likely to.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  brian.stansberry Brian Stansberry
                  Reporter:
                  brian.stansberry Brian Stansberry
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: