Buggy code:
public class JMSServerControlHandler extends AbstractRuntimeOnlyHandler { public static JMSServerControlHandler INSTANCE = new JMSServerControlHandler ( ) ; public static final String LIST_CONNECTIONS_AS_JSON = "list-connections-as-json" ; public static final String LIST_CONSUMERS_AS_JSON = "list-consumers-as-json" ; public static final String LIST_ALL_CONSUMERS_AS_JSON = "list-all-consumers-as-json" ; public static final String LIST_TARGET_DESTINATIONS = "list-target-destinations" ; public static final String GET_LAST_SENT_MESSAGE_ID = "get-last-sent-message-id" ; public static final String GET_SESSION_CREATION_TIME = "get-session-creation-time" ; public static final String LIST_SESSIONS_AS_JSON = "list-sessions-as-json" ; public static final String LIST_PREPARED_TRANSACTION_JMS_DETAILS_AS_JSON = "list-prepared-transaction-jms-details-as-json" ; public static final String LIST_PREPARED_TRANSACTION_JMS_DETAILS_AS_HTML = "list-prepared-transaction-jms-details-as-html" ; public static final String JMS_SERVER = "jms-server" ; public static final String ADDRESS_NAME = "address-name" ; public static final String CONNECTION_ID = "connection-id" ; public static final String SESSION_ID = "session-id" ; private final ParametersValidator connectionIdValidator = new ParametersValidator ( ) ; private final ParametersValidator sessionIdValidator = new ParametersValidator ( ) ; private final ParametersValidator lastSentValidator = new ParametersValidator ( ) ; private JMSServerControlHandler ( ) { } @ Override protected void executeRuntimeStep ( OperationContext context , ModelNode operation ) throws OperationFailedException { final String operationName = operation . require ( OP ) . asString ( ) ; final JMSServerControl serverControl = getServerControl ( context , operation ) ; if ( serverControl == null ) { ManagementUtil . rollbackOperationWithNoHandler ( context , operation ) ; return ; } try { if ( JMSServerControlHandler . LIST_CONNECTIONS_AS_JSON . equals ( operationName ) ) { String json = serverControl . listConnectionsAsJSON ( ) ; context . getResult ( ) . set ( json ) ; } else if ( JMSServerControlHandler . LIST_CONSUMERS_AS_JSON . equals ( operationName ) ) { connectionIdValidator . validate ( operation ) ; String connectionID = operation . require ( JMSServerControlHandler . CONNECTION_ID ) . asString ( ) ; String json = serverControl . listConsumersAsJSON ( connectionID ) ; context . getResult ( ) . set ( json ) ; } else if ( JMSServerControlHandler . LIST_ALL_CONSUMERS_AS_JSON . equals ( operationName ) ) { String json = serverControl . listAllConsumersAsJSON ( ) ; context . getResult ( ) . set ( json ) ; } else if ( JMSServerControlHandler . LIST_TARGET_DESTINATIONS . equals ( operationName ) ) { sessionIdValidator . validate ( operation ) ; String sessionID = operation . require ( JMSServerControlHandler . SESSION_ID ) . asString ( ) ; String [ ] list = serverControl . listTargetDestinations ( sessionID ) ; reportListOfString ( context , list ) ; } else if ( JMSServerControlHandler . GET_LAST_SENT_MESSAGE_ID . equals ( operationName ) ) { lastSentValidator . validate ( operation ) ; String sessionID = operation . require ( JMSServerControlHandler . SESSION_ID ) . asString ( ) ; String addressName = operation . require ( JMSServerControlHandler . ADDRESS_NAME ) . asString ( ) ; String msgId = serverControl . getLastSentMessageID ( sessionID , addressName ) ; context . getResult ( ) . set ( msgId ) ; } else if ( JMSServerControlHandler . GET_SESSION_CREATION_TIME . equals ( operationName ) ) { sessionIdValidator . validate ( operation ) ; String sessionID = operation . require ( JMSServerControlHandler . SESSION_ID ) . asString ( ) ; String time = serverControl . getSessionCreationTime ( sessionID ) ; context . getResult ( ) . set ( time ) ; } else if ( JMSServerControlHandler . LIST_SESSIONS_AS_JSON . equals ( operationName ) ) { connectionIdValidator . validate ( operation ) ; String connectionID = operation . require ( JMSServerControlHandler . CONNECTION_ID ) . asString ( ) ; String json = serverControl . listSessionsAsJSON ( connectionID ) ; context . getResult ( ) . set ( json ) ; } else if ( JMSServerControlHandler . LIST_PREPARED_TRANSACTION_JMS_DETAILS_AS_JSON . equals ( operationName ) ) { String json = serverControl . listPreparedTransactionDetailsAsJSON ( ) ; context . getResult ( ) . set ( json ) ; } else if ( JMSServerControlHandler . LIST_PREPARED_TRANSACTION_JMS_DETAILS_AS_HTML . equals ( operationName ) ) { String html = serverControl . listPreparedTransactionDetailsAsHTML ( ) ; context . getResult ( ) . set ( html ) ; } else { throw MessagingMessages . MESSAGES . unsupportedOperation ( operationName ) ; } } catch ( RuntimeException e ) { throw e ; } catch ( Exception e ) { context . getFailureDescription ( ) . set ( e . getLocalizedMessage ( ) ) ; } <START_BUG> context . completeStep ( ) ; <END_BUG> } public void registerOperations ( final ManagementResourceRegistration registry ) { } private JMSServerControl getServerControl ( final OperationContext context , final ModelNode operation ) { } private void reportListOfString ( OperationContext context , String [ ] list ) { } }

Fix:
context . completeStep ( NOOP_ROLLBACK_HANDLER ) ;