public void progressed( ByteBuffer buffer ) throws IOException { total += buffer.remaining(); TransferEvent.Builder event = newEvent( transfer ); event.setDataBuffer( buffer ).setTransferredBytes( total ); try { catapult.fireProgressed( event ); } catch ( TransferCancelledException e ) { throw new IOException( "Transfer was cancelled: " + e.getMessage() ); } } } );