package Ġcom . example . demo Ċ Ċ import Ġcom . language lat te . simple chaos . spring . Ch aos Service Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . Request Method Ċ import Ġorg . springframework . web . bind . annotation . ResponseBody Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . stereotype . Controller Ċ import Ġjava . lang . Error Ċ import Ġjava . lang . Exception Ċ Ċ @ Controller Ċ @ RestController Ċ @ RequestMapping ("/ simple chaos ") Ċ class ĠRest Endpoint ( private Ġval Ġch aos Service : ĠCh aos Service ) Ġ{ ĊĠĠĠ Ġ@ RequestMapping ( value Ġ= Ġ["/ exception "], Ġmethod Ġ= Ġ[ Request Method . GET ]) ĊĠĠĠ Ġ@ ResponseBody ĊĠĠĠ Ġfun Ġexception (): ĠResponseEntity < String ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresponse : ĠString ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġch aos Service . exception () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġ" No ĠException " ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġif Ġ( e . message Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . message !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" exception " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ( response , ĠHttpStatus . OK ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ RequestMapping ( value Ġ= Ġ["/ error "], Ġmethod Ġ= Ġ[ Request Method . GET ]) ĊĠĠĠ Ġ@ ResponseBody ĊĠĠĠ Ġfun Ġerror (): ĠResponseEntity < String ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresponse : ĠString ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġch aos Service . error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġ" No ĠError " ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse Ġ= Ġif Ġ( e . message Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . message !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" error " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ( response , ĠHttpStatus . OK ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ RequestMapping ( value Ġ= Ġ["/ latency "], Ġmethod Ġ= Ġ[ Request Method . GET ]) ĊĠĠĠ Ġ@ ResponseBody ĊĠĠĠ Ġfun Ġlatency (): ĠResponseEntity < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġch aos Service . latency () ĊĠĠĠĠĠĠĠ Ġresponse Ġ= Ġ" Time ĠT aken Ġ= Ġ" Ġ+ Ġ( System . currentTimeMillis () Ġ- Ġstart ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ( response , ĠHttpStatus . OK ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ RequestMapping ( value Ġ= Ġ["/ jvm crash "], Ġmethod Ġ= Ġ[ Request Method . GET ]) ĊĠĠĠ Ġ@ ResponseBody ĊĠĠĠ Ġfun Ġj vm crash (): ĠResponseEntity < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġ" No ĠJ vm ĠShutdown " ĊĠĠĠĠĠĠĠ Ġch aos Service . jvm Crash () ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity ( response , ĠHttpStatus . OK ) ĊĠĠĠ Ġ} Ċ }