Buggy code:
public class VersionOneProtocolChannelReceiver implements Listener < String , List < ClientMapping > > , DeploymentRepositoryListener , Channel . Receiver { private static final Logger logger = Logger . getLogger ( VersionOneProtocolChannelReceiver . class ) ; private static final byte HEADER_SESSION_OPEN_REQUEST = 1 ; private static final byte HEADER_INVOCATION_REQUEST = 3 ; private static final byte HEADER_TX_COMMIT_REQUEST = 15 ; private static final byte HEADER_TX_ROLLBACK_REQUEST = 16 ; private static final byte HEADER_TX_PREPARE_REQUEST = 17 ; private static final byte HEADER_TX_FORGET_REQUEST = 18 ; private static final byte HEADER_TX_BEFORE_COMPLETION_REQUEST = 19 ; private final ChannelAssociation channelAssociation ; private final DeploymentRepository deploymentRepository ; private final EJBRemoteTransactionsRepository transactionsRepository ; private final MarshallerFactory marshallerFactory ; private final ExecutorService executorService ; private final RegistryCollector < String , List < ClientMapping > > clientMappingRegistryCollector ; private final Set < VersionOneProtocolChannelReceiver . ClusterTopologyUpdateListener > clusterTopologyUpdateListeners = new HashSet < VersionOneProtocolChannelReceiver . ClusterTopologyUpdateListener > ( ) ; public VersionOneProtocolChannelReceiver ( final ChannelAssociation channelAssociation , final DeploymentRepository deploymentRepository , final EJBRemoteTransactionsRepository transactionsRepository , final RegistryCollector < String , List < ClientMapping > > clientMappingRegistryCollector , final MarshallerFactory marshallerFactory , final ExecutorService executorService ) { } public void startReceiving ( ) { } @ Override public void handleError ( Channel channel , IOException error ) { try { channel . close ( ) ; } catch ( IOException e ) { <START_BUG> throw new RuntimeException ( e ) ; <END_BUG> } finally { this . cleanupOnChannelDown ( ) ; } } @ Override public void handleEnd ( Channel channel ) { } @ Override public void handleMessage ( Channel channel , MessageInputStream messageInputStream ) { } @ Override public void listenerAdded ( DeploymentRepository repository ) { } @ Override public void deploymentAvailable ( DeploymentModuleIdentifier deploymentModuleIdentifier , ModuleDeployment moduleDeployment ) { } @ Override public void deploymentRemoved ( DeploymentModuleIdentifier deploymentModuleIdentifier ) { } private void sendModuleAvailability ( DeploymentModuleIdentifier [ ] availableModules ) throws IOException { } private void sendModuleUnAvailability ( DeploymentModuleIdentifier [ ] availableModules ) throws IOException { } @ Override public void registryAdded ( Registry < String , List < ClientMapping > > registry ) { } @ Override public void registryRemoved ( Registry < String , List < ClientMapping > > registry ) { } private void sendNewClusterFormedMessage ( final Collection < Registry < String , List < ClientMapping > > > clientMappingRegistries ) throws IOException { } private void sendClusterRemovedMessage ( final Registry < String , List < ClientMapping > > registry ) throws IOException { } private void cleanupOnChannelDown ( ) { } private class ChannelCloseHandler implements CloseHandler < Channel > { @ Override public void handleClose ( Channel closedChannel , IOException exception ) { } } private class ClusterTopologyUpdateListener implements Registry . Listener < String , List < ClientMapping > > { private final String clusterName ; private final VersionOneProtocolChannelReceiver channelReceiver ; private final Registry < String , List < ClientMapping > > cluster ; ClusterTopologyUpdateListener ( Registry < String , List < ClientMapping > > cluster , final VersionOneProtocolChannelReceiver channelReceiver ) { } @ Override public void addedEntries ( Map < String , List < ClientMapping > > added ) { } @ Override public void updatedEntries ( Map < String , List < ClientMapping > > updated ) { } @ Override public void removedEntries ( Set < String > removed ) { } private void unregisterListener ( ) { } private void sendClusterNodesRemoved ( final Set < String > removedNodes ) throws IOException { } private void sendClusterNodesAdded ( final Map < String , List < ClientMapping > > addedNodes ) throws IOException { } } }

Fix:
throw MESSAGES . couldNotCloseChannel ( e ) ;