@@ -117,7 +117,15 @@ private void getBlock() {
117117 Block block = getBlockByNum (blockNum );
118118 blockQueue .put (block );
119119 blockNum = ID .incrementAndGet ();
120+ } catch (InterruptedException e ) {
121+ Thread .currentThread ().interrupt ();
122+ logger .info ("getBlock interrupted, exiting." );
123+ return ;
120124 } catch (Exception e ) {
125+ if (!flag ) {
126+ logger .info ("getBlock stopped during shutdown, last block: {}." , blockNum );
127+ return ;
128+ }
121129 logger .error ("Failed to get block {}, reason: {}." , blockNum , e .getMessage ());
122130 sleep (exceptionSleepTime );
123131 }
@@ -194,6 +202,10 @@ private long getLastSolidityBlockNum() {
194202 blockNum , remoteBlockNum , System .currentTimeMillis () - time );
195203 return blockNum ;
196204 } catch (Exception e ) {
205+ if (!flag ) {
206+ logger .info ("getLastSolidityBlockNum stopped during shutdown." );
207+ return 0 ;
208+ }
197209 logger .error ("Failed to get last solid blockNum: {}, reason: {}." , remoteBlockNum .get (),
198210 e .getMessage ());
199211 sleep (exceptionSleepTime );
@@ -205,8 +217,8 @@ private long getLastSolidityBlockNum() {
205217 public void sleep (long time ) {
206218 try {
207219 Thread .sleep (time );
208- } catch (Exception e1 ) {
209- logger . error ( e1 . getMessage () );
220+ } catch (InterruptedException e ) {
221+ Thread . currentThread (). interrupt ( );
210222 }
211223 }
212224
0 commit comments