From 17ff612f26d8d57c425cbde9da76e0c2d1ef478c Mon Sep 17 00:00:00 2001 From: unam98 Date: Tue, 18 Aug 2026 16:56:26 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20AuthInterceptor=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=ED=86=A0=ED=81=B0=20=EC=9E=AC=EB=B0=9C=EA=B8=89=20=EC=8B=A4?= =?UTF-8?q?=ED=8C=A8=20=EC=8B=9C=20=EC=9D=91=EB=8B=B5=20body=EB=A5=BC=20?= =?UTF-8?q?=EC=95=88=20=EB=8B=AB=EB=8D=98=20=EB=88=84=EC=88=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit handleGetNewTokenFailure가 실패한 refreshTokenResponse를 close() 하지 않고 반환해서, OkHttp 커넥션 풀이 오염되고 이후 재시도 응답을 읽던 HttpLoggingInterceptor가 IllegalStateException: closed로 크래시했음. access/refresh 토큰이 둘 다 무효할 때 재현됨 (예: 딥링크로 진입 시 토큰 유효성 검증 없이 바로 API를 호출하는 경로에서 자주 노출). --- .../java/com/runnect/runnect/data/service/AuthInterceptor.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/runnect/runnect/data/service/AuthInterceptor.kt b/app/src/main/java/com/runnect/runnect/data/service/AuthInterceptor.kt index 29eb8980..a61a2922 100644 --- a/app/src/main/java/com/runnect/runnect/data/service/AuthInterceptor.kt +++ b/app/src/main/java/com/runnect/runnect/data/service/AuthInterceptor.kt @@ -109,6 +109,7 @@ class AuthInterceptor @Inject constructor( chain: Interceptor.Chain ): Response { Timber.e("New Refresh Token Failure: ${refreshTokenResponse.code}") + refreshTokenResponse.close() context.saveToken( accessToken = LoginStatus.EXPIRED.value, refreshToken = LoginStatus.EXPIRED.value From f3abc8a31c26545239b330c319b9602ec0c01e06 Mon Sep 17 00:00:00 2001 From: unam98 Date: Tue, 18 Aug 2026 17:04:51 +0900 Subject: [PATCH 2/2] =?UTF-8?q?ci:=20CI=20diff=20=EA=B8=B0=EB=B0=98=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=ED=95=84=ED=84=B0=EA=B0=80=20?= =?UTF-8?q?=EB=A7=A4=EC=B9=AD=EB=90=98=EB=8A=94=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=97=86=EC=9D=84=20=EB=95=8C=20=EC=8B=A4=ED=8C=A8?= =?UTF-8?q?=ED=95=98=EB=8D=98=20=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR diff로 변경된 패키지만 --tests 필터로 골라 돌리는 CI 스크립트가, 그 패키지에 테스트 클래스가 하나도 없으면 "No tests found for given includes"로 빌드 자체를 실패시켰음. failOnNoMatchingTests=false로 이 경우 그냥 스킵하도록 수정. --- app/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index 6d10a623..bd9df773 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -103,6 +103,9 @@ tasks.withType(Test).configureEach { testLogging { events "passed", "skipped", "failed" } + filter { + failOnNoMatchingTests = false + } } tasks.register('renameReleaseBundle') {