]
Chao Wang commented on WFCORE-1997:
-----------------------------------
AbstractCollectionHandler.execute() incorrectly assumes that it defines AttributeAccess
during resource definition. I think it's there for later comparison with
ModelType.LIST inside updateModel().
NPE when non-existent attribute name is used for list-add operation
-------------------------------------------------------------------
Key: WFCORE-1997
URL:
https://issues.jboss.org/browse/WFCORE-1997
Project: WildFly Core
Issue Type: Bug
Components: Domain Management
Affects Versions: 3.0.0.Alpha12
Reporter: Chao Wang
Assignee: Chao Wang
When I use non-existent attribute name for 'list-add' operation, I get following
NPE in server.log:
{code}
12:44:24,150 ERROR [org.jboss.as.controller.management-operation]
(management-handler-thread - 10) WFLYCTL0013: Operation ("list-add") failed -
address: ([
("subsystem" => "undertow"),
("server" => "default-server"),
("https-listener" => "https")
]): java.lang.NullPointerException
at
org.jboss.as.controller.operations.global.AbstractCollectionHandler.execute(AbstractCollectionHandler.java:92)
at
org.jboss.as.controller.operations.global.ListOperations$ListAddHandler.execute(ListOperations.java:108)
at
org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:921)
at
org.jboss.as.controller.AbstractOperationContext.processStages(AbstractOperationContext.java:664)
at
org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:383)
at
org.jboss.as.controller.OperationContextImpl.executeOperation(OperationContextImpl.java:1364)
at
org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:416)
at
org.jboss.as.controller.ModelControllerImpl.lambda$execute$1(ModelControllerImpl.java:237)
at org.wildfly.security.auth.client.PeerIdentity.runAsAll(PeerIdentity.java:431)
at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:206)
at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:237)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.doExecute(ModelControllerClientOperationHandler.java:217)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler.access$400(ModelControllerClientOperationHandler.java:137)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:161)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1$1.run(ModelControllerClientOperationHandler.java:157)
at org.wildfly.security.auth.client.PeerIdentity.runAsAll(PeerIdentity.java:464)
at org.wildfly.security.auth.server.SecurityIdentity.runAs(SecurityIdentity.java:225)
at org.jboss.as.controller.AccessAuditContext.doAs(AccessAuditContext.java:185)
at
org.jboss.as.controller.remote.ModelControllerClientOperationHandler$ExecuteRequestHandler$1.execute(ModelControllerClientOperationHandler.java:157)
at
org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$1.doExecute(ManagementRequestContextImpl.java:70)
at
org.jboss.as.protocol.mgmt.ManagementRequestContextImpl$AsyncTaskRunner.run(ManagementRequestContextImpl.java:160)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
{code}
Yeah - I understand that it is my fault that I provided bad command. But still, server
should not respond with NPE. Ideally it should told me that provided list attribute does
not exist for particular element and should finish operation with error.