Skip to content

Commit

Permalink
Ikke kjør retry på SocketTimeoutException
Browse files Browse the repository at this point in the history
  • Loading branch information
ugur93 committed Aug 30, 2024
1 parent 1ad5628 commit f83688e
Show file tree
Hide file tree
Showing 10 changed files with 6 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.core.ParameterizedTypeReference
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import java.net.SocketTimeoutException

private const val AAREG_CONTEXT = "/api/v2/arbeidstaker/arbeidsforhold"

Expand All @@ -25,7 +22,6 @@ open class ArbeidsforholdConsumer(private val restTemplate: HttpHeaderRestTempla
val LOGGER: Logger = LoggerFactory.getLogger(ArbeidsforholdConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentArbeidsforhold(request: HentArbeidsforholdRequest): RestResponse<List<Arbeidsforhold>> {
SECURE_LOGGER.info("Henter arbeidsforhold fra Aareg med request: ${tilJson(request)}")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ import no.nav.bidrag.grunnlag.util.GrunnlagUtil.Companion.tilJson
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import java.net.SocketTimeoutException

open class EnhetsregisterConsumer(private val restTemplate: HttpHeaderRestTemplate) : GrunnlagsConsumer() {

Expand All @@ -22,7 +19,6 @@ open class EnhetsregisterConsumer(private val restTemplate: HttpHeaderRestTempla
val LOGGER: Logger = LoggerFactory.getLogger(EnhetsregisterConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentEnhetsinfo(request: HentEnhetsregisterRequest): RestResponse<HentEnhetsregisterResponse> {
LOGGER.info("Henter info om en organisasjon fra Ereg")
SECURE_LOGGER.info("Henter info om en organisasjon fra Ereg med request: ${tilJson(request)}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,6 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.core.ParameterizedTypeReference
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import java.net.SocketTimeoutException

private const val BIDRAGPERSON_CONTEXT_FOEDSEL_DOED = "/bidrag-person/navnfoedseldoed"
private const val BIDRAGPERSON_CONTEXT_FORELDER_BARN_RELASJON = "/bidrag-person/forelderbarnrelasjon"
Expand All @@ -35,7 +32,6 @@ open class BidragPersonConsumer(private val restTemplate: HttpHeaderRestTemplate
val logger: Logger = LoggerFactory.getLogger(BidragPersonConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentNavnFoedselOgDoed(personident: Personident): RestResponse<NavnFødselDødDto> {
logger.debug("Kaller bidrag-person som igjen henter info om fødselsdato og eventuelt død fra PDL")

Expand All @@ -52,7 +48,6 @@ open class BidragPersonConsumer(private val restTemplate: HttpHeaderRestTemplate
return restResponse
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentForelderBarnRelasjon(personident: Personident): RestResponse<ForelderBarnRelasjonDto> {
logger.info("Kaller bidrag-person som igjen henter forelderbarnrelasjoner for angitt person fra PDL")

Expand All @@ -69,7 +64,6 @@ open class BidragPersonConsumer(private val restTemplate: HttpHeaderRestTemplate
return restResponse
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentHusstandsmedlemmer(request: HusstandsmedlemmerRequest): RestResponse<HusstandsmedlemmerDto> {
logger.info(
"Kaller bidrag-person som igjen henter info om en persons bostedsadresser " +
Expand All @@ -89,7 +83,6 @@ open class BidragPersonConsumer(private val restTemplate: HttpHeaderRestTemplate
return restResponse
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentSivilstand(personident: Personident): RestResponse<SivilstandPdlHistorikkDto> {
logger.info("Kaller bidrag-person som igjen kaller PDL for å finne en persons sivilstand")

Expand All @@ -106,7 +99,6 @@ open class BidragPersonConsumer(private val restTemplate: HttpHeaderRestTemplate
return restResponse
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentPersonidenter(personident: Personident, inkludereHistoriske: Boolean): RestResponse<List<PersonidentDto>> {
logger.debug("Kaller bidrag-person som igjen kaller PDL for å finne en persons historiske identer")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ import no.nav.bidrag.grunnlag.exception.tryExchange
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import java.net.SocketTimeoutException

private const val FAMILIEBASAK_CONTEXT = "/api/bisys/hent-utvidet-barnetrygd"

Expand All @@ -22,7 +19,6 @@ open class FamilieBaSakConsumer(private val restTemplate: HttpHeaderRestTemplate
val logger: Logger = LoggerFactory.getLogger(FamilieBaSakConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentFamilieBaSak(request: FamilieBaSakRequest): RestResponse<FamilieBaSakResponse> {
logger.debug("Henter utvidet barnetrygd og småbarnstillegg fra familie-ba-sak")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ import no.nav.bidrag.grunnlag.exception.tryExchange
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import java.net.SocketTimeoutException

private const val BARNETILSYN_CONTEXT = "/api/ekstern/bisys/perioder-barnetilsyn"

Expand All @@ -22,7 +19,6 @@ open class FamilieEfSakConsumer(private val restTemplate: HttpHeaderRestTemplate
private val logger: Logger = LoggerFactory.getLogger(FamilieEfSakConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentBarnetilsyn(request: BarnetilsynRequest): RestResponse<BarnetilsynResponse> {
logger.debug("Henter barnetilsyn")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ import no.nav.bidrag.grunnlag.exception.tryExchange
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import java.net.SocketTimeoutException

private const val FAMILIEKSSAK_CONTEXT = "/api/bisys/hent-utbetalingsinfo"

Expand All @@ -22,7 +19,6 @@ open class FamilieKsSakConsumer(private val restTemplate: HttpHeaderRestTemplate
val logger: Logger = LoggerFactory.getLogger(FamilieKsSakConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentKontantstotte(request: BisysDto): RestResponse<BisysResponsDto> {
val restResponse = restTemplate.tryExchange(
FAMILIEKSSAK_CONTEXT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.http.HttpMethod
import org.springframework.http.HttpStatus
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import java.net.SocketTimeoutException

private const val INNTEKT_LISTE_CONTEXT = "/rs/api/v1/hentinntektliste"
private const val DETALJERTE_ABONNERTE_INNTEKTER_CONTEXT = "/rs/api/v1/hentdetaljerteabonnerteinntekter"
Expand All @@ -29,7 +26,6 @@ open class InntektskomponentenConsumer(private val restTemplate: HttpHeaderRestT
val LOGGER: Logger = LoggerFactory.getLogger(InntektskomponentenConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentInntekter(request: HentInntektListeRequest, abonnerteInntekterRequest: Boolean): RestResponse<HentInntektListeResponse> {
if (abonnerteInntekterRequest) {
LOGGER.debug("Henter abonnerte inntekter fra Inntektskomponenten.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@ import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.core.ParameterizedTypeReference
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import org.springframework.web.util.UriComponentsBuilder
import java.net.SocketTimeoutException

private const val BARNETILLEGG_URL = "/pen/api/barnetillegg/search"

Expand All @@ -25,7 +22,6 @@ open class PensjonConsumer(private val restTemplate: HttpHeaderRestTemplate) : G
val LOGGER: Logger = LoggerFactory.getLogger(PensjonConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentBarnetilleggPensjon(request: HentBarnetilleggPensjonRequest): RestResponse<List<BarnetilleggPensjon>> {
val uri = UriComponentsBuilder.fromPath(BARNETILLEGG_URL)
.build()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@ import no.nav.bidrag.grunnlag.exception.tryExchange
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.http.HttpMethod
import org.springframework.retry.annotation.Backoff
import org.springframework.retry.annotation.Retryable
import org.springframework.web.util.UriComponentsBuilder
import java.net.SocketTimeoutException
import java.time.LocalDate

private const val SUMMERT_SKATTEGRUNNLAG_URL = "/api/v1/summertskattegrunnlag"
Expand All @@ -27,7 +24,6 @@ open class SigrunConsumer(private val restTemplate: HttpHeaderRestTemplate) : Gr
val LOGGER: Logger = LoggerFactory.getLogger(SigrunConsumer::class.java)
}

@Retryable(value = [Exception::class], exclude = [SocketTimeoutException::class], backoff = Backoff(delay = 500))
open fun hentSummertSkattegrunnlag(request: HentSummertSkattegrunnlagRequest): RestResponse<HentSummertSkattegrunnlagResponse> {
val uri = UriComponentsBuilder.fromPath(SUMMERT_SKATTEGRUNNLAG_URL)
.queryParam(INNTEKTSAAR, request.inntektsAar)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ import org.springframework.web.bind.annotation.RestControllerAdvice
import org.springframework.web.client.HttpClientErrorException
import org.springframework.web.client.HttpServerErrorException
import org.springframework.web.client.HttpStatusCodeException
import org.springframework.web.client.ResourceAccessException
import org.springframework.web.client.RestClientException
import org.springframework.web.client.RestTemplate
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException
import java.net.SocketTimeoutException
import java.time.format.DateTimeParseException

@RestControllerAdvice
Expand Down Expand Up @@ -159,17 +159,15 @@ class HttpRetryPolicy(
val throwable = context.lastThrowable
val ignoreException =
throwable != null &&
(throwable is ResourceAccessException || throwable is HttpStatusCodeException && ignoreHttpStatus.contains(throwable.statusCode))
val can = context.retryCount < maxAttempts &&
(
context.lastThrowable == null || !ignoreException
)
if (!can && throwable != null) {
(throwable.cause is SocketTimeoutException || throwable is HttpStatusCodeException && ignoreHttpStatus.contains(throwable.statusCode))
val shouldRetry = context.retryCount < maxAttempts &&
(context.lastThrowable == null || !ignoreException)
if (!shouldRetry && throwable != null) {
context.setAttribute(RetryContext.NO_RECOVERY, true)
} else {
context.removeAttribute(RetryContext.NO_RECOVERY)
}
return can
return shouldRetry
}

override fun close(status: RetryContext) {
Expand Down

0 comments on commit f83688e

Please sign in to comment.