Buggy code:
public class ChannelMetricsHandler extends AbstractRuntimeOnlyHandler { public static final ChannelMetricsHandler INSTANCE = new ChannelMetricsHandler ( ) ; public enum ChannelMetrics { ADDRESS ( ChannelInstanceResourceDefinition . ADDRESS ) , ADDRESS_AS_UUID ( ChannelInstanceResourceDefinition . ADDRESS_AS_UUID ) , DISCARD_OWN_MESSAGES ( ChannelInstanceResourceDefinition . DISCARD_OWN_MESSAGES ) , NUM_TASKS_IN_TIMER ( ChannelInstanceResourceDefinition . NUM_TASKS_IN_TIMER ) , NUM_TIMER_THREADS ( ChannelInstanceResourceDefinition . NUM_TIMER_THREADS ) , RECEIVED_BYTES ( ChannelInstanceResourceDefinition . RECEIVED_BYTES ) , RECEIVED_MESSAGES ( ChannelInstanceResourceDefinition . RECEIVED_MESSAGES ) , SENT_BYTES ( ChannelInstanceResourceDefinition . SENT_BYTES ) , SENT_MESSAGES ( ChannelInstanceResourceDefinition . SENT_MESSAGES ) , STATE ( ChannelInstanceResourceDefinition . STATE ) , STATS_ENABLED ( ChannelInstanceResourceDefinition . STATS_ENABLED ) , VERSION ( ChannelInstanceResourceDefinition . VERSION ) , VIEW ( ChannelInstanceResourceDefinition . VIEW ) ; private static final Map < String , ChannelMetricsHandler . ChannelMetrics > MAP = new HashMap < String , ChannelMetricsHandler . ChannelMetrics > ( ) ; final AttributeDefinition definition ; private ChannelMetrics ( AttributeDefinition definition ) { } @ Override public String toString ( ) { } public static ChannelMetricsHandler . ChannelMetrics getStat ( final String stringForm ) { } } @ Override protected void executeRuntimeStep ( OperationContext context , ModelNode operation ) throws OperationFailedException { PathAddress pathAddress = PathAddress . pathAddress ( operation . require ( OP_ADDR ) ) ; String channelName = pathAddress . getElement ( ( ( pathAddress . size ( ) ) - 1 ) ) . getValue ( ) ; String attrName = operation . require ( NAME ) . asString ( ) ; ChannelMetricsHandler . ChannelMetrics metric = ChannelMetricsHandler . ChannelMetrics . getStat ( attrName ) ; ServiceName channelServiceName = CHANNEL_PARENT . append ( channelName ) ; ServiceController < ? > controller = context . getServiceRegistry ( false ) . getService ( channelServiceName ) ; boolean started = ( controller != null ) && ( ( controller . getValue ( ) ) != null ) ; ModelNode result = new ModelNode ( ) ; if ( metric == null ) { context . getFailureDescription ( ) . set ( MESSAGES . unknownMetric ( attrName ) ) ; } else if ( ! started ) { } else { JChannel channel = ( ( JChannel ) ( controller . getValue ( ) ) ) ; switch ( metric ) { case ADDRESS : result . set ( channel . getAddressAsString ( ) ) ; break ; case ADDRESS_AS_UUID : result . set ( channel . getAddressAsUUID ( ) ) ; break ; case DISCARD_OWN_MESSAGES : result . set ( channel . getDiscardOwnMessages ( ) ) ; break ; case NUM_TASKS_IN_TIMER : result . set ( channel . getNumberOfTasksInTimer ( ) ) ; break ; case NUM_TIMER_THREADS : result . set ( channel . getTimerThreads ( ) ) ; break ; case RECEIVED_BYTES : result . set ( channel . getReceivedBytes ( ) ) ; break ; case RECEIVED_MESSAGES : result . set ( channel . getReceivedMessages ( ) ) ; break ; case SENT_BYTES : result . set ( channel . getSentBytes ( ) ) ; break ; case SENT_MESSAGES : result . set ( channel . getSentMessages ( ) ) ; break ; case STATE : result . set ( channel . getState ( ) ) ; break ; case STATS_ENABLED : result . set ( channel . statsEnabled ( ) ) ; break ; case VERSION : <START_BUG> result . set ( channel . getVersion ( ) ) ; <END_BUG> break ; case VIEW : result . set ( channel . getViewAsString ( ) ) ; break ; } context . getResult ( ) . set ( result ) ; } context . completeStep ( NOOP_RESULT_HANDLER ) ; } }

Fix:
result . set ( JChannel . getVersion ( ) ) ;