private void goingAway ( Status status ) { lifecycleManager . notifyShutdown ( status ) ; final Status goAwayStatus = lifecycleManager . getShutdownStatus ( ) ; final int lastKnownStream = connection ( ) . local ( ) . lastStreamKnownByPeer ( ) ; try { connection ( ) . forEachActiveStream ( new Http2StreamVisitor ( ) { @ Override public boolean visit ( Http2Stream stream ) throws Http2Exception { if ( stream . id ( ) > lastKnownStream ) { NettyClientStream . TransportState clientStream = clientStream ( stream ) ; if ( clientStream != null ) { clientStream . transportReportStatus ( goAwayStatus , RpcProgress . REFUSED , false , new Metadata ( ) ) ; } stream . close ( ) ; } return true ; } } ) ; } catch ( Http2Exception e ) { throw new RuntimeException ( e ) ; } }
Handler for a GOAWAY being received . Fails any streams created after the last known stream .