Bug 1047519 - [GSS] (6.3) management audit settings: syslog protocol is lowercase while uppercase is expected
Summary: [GSS] (6.3) management audit settings: syslog protocol is lowercase while upp...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: Domain Management
Version: 6.2.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: DR0
: EAP 6.3.0
Assignee: Tom Fonteyne
QA Contact: Petr Kremensky
URL:
Whiteboard:
Depends On:
Blocks: 1047536 1049824
TreeView+ depends on / blocked
 
Reported: 2013-12-31 13:50 UTC by Tom Fonteyne
Modified: 2017-10-10 00:26 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
: 1047536 (view as bug list)
Environment:
Last Closed: 2014-06-28 15:43:23 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker WFLY-2696 0 Major Resolved management audit settings: syslog protocol is lowercase while uppercase is expected 2014-08-06 13:01:03 UTC

Description Tom Fonteyne 2013-12-31 13:50:19 UTC
backport of https://issues.jboss.org/browse/WFLY-2696
to 6.x, for inclusion in 6.3.0 release

Description of problem:

Add a syslog handler to the audit settings of the management service of the domain controller, then start an instance. It fails to start with:

JBAS014612: Operation ("register-server") failed - address: ([]): java.lang.IllegalArgumentException: No enum const class org.jboss.as.controller.audit.SyslogAuditLogHandler$Transport.udp
at java.lang.Enum.valueOf(Enum.java:214)


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:


clean install using domain mode.

batch
/host=master/core-service=management/access=audit/syslog-handler=mysyslog:add(formatter=json-formatter)
/host=master/core-service=management/access=audit/syslog-handler=mysyslog/protocol=udp:add(host=localhost,port=514)
run-batch

/host=master/core-service=management/access=audit/logger=audit-log/handler=mysyslog:add()

and subsequently try to start an instance. This generates:

17:30:25,066 ERROR [org.jboss.as.controller.management-operation] (server-registration-threads - 1) JBAS014612: Operation ("register-server") failed - address: ([]): java.lang.IllegalArgumentException: No enum const class org.jboss.as.controller.audit.SyslogAuditLogHandler$Transport.udp
at java.lang.Enum.valueOf(Enum.java:214) [rt.jar:1.6.0_24]
at org.jboss.as.controller.audit.SyslogAuditLogHandler$Transport.valueOf(SyslogAuditLogHandler.java:315) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.domain.management.audit.SyslogAuditLogProtocolResourceDefinition.createProtocolAddOperation(SyslogAuditLogProtocolResourceDefinition.java:128) [jboss-as-domain-management-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.domain.management.audit.SyslogAuditLogProtocolResourceDefinition.createServerAddOperations(SyslogAuditLogProtocolResourceDefinition.java:107) [jboss-as-domain-management-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.domain.management.audit.SyslogAuditLogHandlerResourceDefinition.createServerAddOperations(SyslogAuditLogHandlerResourceDefinition.java:105) [jboss-as-domain-management-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.host.controller.ManagedServerOperationsFactory.addAuditLog(ManagedServerOperationsFactory.java:444)
at org.jboss.as.host.controller.ManagedServerOperationsFactory.getBootUpdates(ManagedServerOperationsFactory.java:227)
at org.jboss.as.host.controller.ManagedServerOperationsFactory.createBootUpdates(ManagedServerOperationsFactory.java:153)
at org.jboss.as.host.controller.mgmt.ServerToHostProtocolHandler$ServerRegistrationStepHandler.execute(ServerToHostProtocolHandler.java:219)
at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:607) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:485) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.controller.AbstractOperationContext.completeStepInternal(AbstractOperationContext.java:282) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.controller.AbstractOperationContext.executeOperation(AbstractOperationContext.java:277) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.controller.ModelControllerImpl.executeReadOnlyOperation(ModelControllerImpl.java:164) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.controller.AbstractControllerService.executeReadOnlyOperation(AbstractControllerService.java:303) [jboss-as-controller-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.host.controller.DomainModelControllerService.access$700(DomainModelControllerService.java:140)
at org.jboss.as.host.controller.DomainModelControllerService$3.joinActiveOperation(DomainModelControllerService.java:515)
at org.jboss.as.host.controller.mgmt.ServerToHostProtocolHandler$ServerRegistrationRequestHandler$1.execute(ServerToHostProtocolHandler.java:180)
at org.jboss.as.protocol.mgmt.AbstractMessageHandler$2$1.doExecute(AbstractMessageHandler.java:283) [jboss-as-protocol-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at org.jboss.as.protocol.mgmt.AbstractMessageHandler$AsyncTaskRunner.run(AbstractMessageHandler.java:504) [jboss-as-protocol-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) [rt.jar:1.6.0_24]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.6.0_24]
at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final-redhat-1.jar:2.1.1.Final-redhat-1]

The issue is simple:

package org.jboss.as.domain.management.audit;

public abstract class SyslogAuditLogProtocolResourceDefinition extends SimpleResourceDefinition {
...

public static ModelNode createProtocolAddOperation(final PathAddress protocolAddress, final ModelNode protocol){
ModelNode protocolAdd = Util.createAddOperation(protocolAddress);
protocolAdd.get(HOST.getName()).set(protocol.get(HOST.getName()));
protocolAdd.get(PORT.getName()).set(protocol.get(PORT.getName()));

SyslogAuditLogHandler.Transport transport = SyslogAuditLogHandler.Transport.valueOf(protocolAddress.getLastElement().getValue());

with:

protocolAddress = (org.jboss.as.controller.PathAddress) [
("core-service" => "management"),
("access" => "audit"),
("syslog-handler" => "mysyslog"),
("protocol" => "udp")
]

so "udp" is used... but the enum:

public enum Transport
{ UDP, TCP, TLS }

has an uppercase UDP.

The same issue happens in

public static void createServerAddOperations(final List<ModelNode> addOps, final PathAddress protocolAddress, final ModelNode protocol) {
addOps.add(createProtocolAddOperation(protocolAddress, protocol));

final SyslogAuditLogHandler.Transport transport = SyslogAuditLogHandler.Transport.valueOf(protocolAddress.getLastElement().getValue());

Solution: make uppercase:

SyslogAuditLogHandler.Transport.valueOf(protocolAddress.getLastElement().getValue().toUpperCase());

Comment 1 Tom Fonteyne 2013-12-31 14:10:23 UTC
pull request send:

https://github.com/jbossas/jboss-eap/pull/743

Comment 2 Tom Fonteyne 2014-01-07 13:16:59 UTC
new (and final) pull request send:

 https://github.com/jbossas/jboss-eap/pull/756

Comment 3 Ondrej Lukas 2014-02-26 09:32:25 UTC
Verified on EAP 6.3.0.DR0.


Note You need to log in before you can comment on or make changes to this bug.