package Ġnl . mit che ln ij dam . k af k are try test . kafka . error Ċ Ċ import Ġorg . springframework . classify . Binary Exception Classifier Ċ Ċ /** Ċ Ġ* ĠS aves Ġa Ġlist Ġof Ġ[ Exception ] Ġclasses Ġthat Ġare Ġconsidered Ġ' retry able ' Ġfrom Ġkafka 's Ġpoint Ġof Ġview . Ċ Ġ* Ċ Ġ* ĠAdd Ġclasses Ġto Ġthe Ġlist Ġwith Ġ[ add Retry able Exception ]. Ċ Ġ* ĠTest Ġif Ġa ĠThrowable Ġclass Ġis Ġa Ġretry able Ġexception Ġby Ġusing Ġ[ should Retry ]. Ċ Ġ* Ċ Ġ* Ġ@ author ĠMit che l ĠN ij dam Ċ Ġ*/ Ċ class ĠRetry able Exception Identifier Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġretry able Exception Classifier : ĠBinary Exception Classifier Ġ= ĠExtended Binary Exception Classifier ( empty Map (), Ġfalse ) ĊĊĠĠĠ Ġfun Ġadd Retry able Exception ( exception Type : ĠClass < out ĠException >) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( retry able Exception Classifier Ġas ĠExtended Binary Exception Classifier ). class ified [ exception Type ] Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRe tr uns Ġtrue Ġif Ġthe Ġpassed Ġin Ġ[ Throwable ] Ġis Ġone Ġof Ġthe Ġprovided Ġretry able ĠExceptions . ĊĠĠĠĠ Ġ* ĠIf Ġone Ġof Ġthe Ġcauses Ġis Ġa Ġretry able ĠException , Ġit Ġwill Ġalso Ġreturn Ġtrue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġroot Cause Ġthe Ġexception Ġclass Ġto Ġcheck ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshould Retry ( root Cause : ĠThrowable ?): ĠBoolean Ġ= Ġretry able Exception Classifier . classify ( root Cause ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĠExtended Ġto Ġprovide Ġvisibility Ġto Ġthe Ġcurrent Ġclass ified Ġexceptions . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġclass ĠExtended Binary Exception Classifier Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Map : ĠMap < Class < out ĠThrowable >, ĠBoolean >, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdefaultValue : ĠBoolean ĊĠĠĠ Ġ) Ġ: ĠBinary Exception Classifier ( type Map , ĠdefaultValue ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġpublic Ġoverride Ġfun ĠgetClass ified (): ĠMutable Map < Class < out ĠThrowable >, ĠBoolean > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsuper . getClass ified () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Tra verse Cause s ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }