75 lines
3.1 KiB
Markdown
75 lines
3.1 KiB
Markdown
---
|
|
title: error / startup-log-suppression-spotless-format-2026-07-03
|
|
source_type: error-note
|
|
status: raw
|
|
related_branches: [feature-startup-failure-log-suppression]
|
|
related_projects: [ca-tmpl]
|
|
tags: [error, ca-tmpl, testing, gradle, static-analysis]
|
|
created: 2026-07-03
|
|
status_label: resolved
|
|
---
|
|
|
|
# error: startup-log-suppression-spotless-format-2026-07-03
|
|
|
|
## Parent / 부모
|
|
|
|
- [[raw/branch-notes/feature-startup-failure-log-suppression]]
|
|
|
|
## 증상 / Symptom
|
|
|
|
- 에러 메시지 (원문 그대로):
|
|
```text
|
|
Execution failed for task ':app-bootstrap:spotlessJavaCheck'.
|
|
> The following files had format violations:
|
|
src/main/java/dev/caskeleton/bootstrap/logging/StartupFailureSpringBootLogFilter.java
|
|
src/test/java/dev/caskeleton/bootstrap/logging/StartupFailureSpringBootLogFilterTest.java
|
|
Run './gradlew spotlessApply' to fix all violations.
|
|
```
|
|
- 발생 컨텍스트: `./gradlew check`
|
|
- 발생 시점: 2026-07-03 10:05 KST
|
|
- 발생 환경: local
|
|
- 재현 가능 여부: `always`
|
|
|
|
## 재현 절차 / Reproduction
|
|
|
|
1. startup failure log suppression Java files를 수동 편집한다.
|
|
2. `cd src && ./gradlew check`를 실행한다.
|
|
3. 기대 결과: `check` 통과.
|
|
4. 실제 결과: `:app-bootstrap:spotlessJavaCheck`가 line wrapping 차이로 실패.
|
|
|
|
## 조사 단계 / Investigation log
|
|
|
|
- 2026-07-03 10:05 — `./gradlew check` 실행 → `StartupFailureSpringBootLogFilter.java`,
|
|
`StartupFailureSpringBootLogFilterTest.java` formatting violation 확인.
|
|
- 2026-07-03 10:06 — `./gradlew :app-bootstrap:spotlessApply` 실행 → Spotless가 Java formatting 적용.
|
|
- 2026-07-03 10:07 — `./gradlew check` 재실행 → 전체 check 통과.
|
|
|
|
## 근본 원인 / Root cause
|
|
|
|
- 직접 원인: 새 Java 파일의 line wrapping이 Spotless formatter가 요구하는 형태와 달랐다.
|
|
- 근본 원인: manual patch 작성 시 formatter output을 미리 적용하지 않았다.
|
|
- 트리거 조건: `./gradlew check`가 `:app-bootstrap:spotlessJavaCheck`를 실행했다.
|
|
|
|
## Sources / 근거
|
|
|
|
- Local command output: `./gradlew check` — Spotless violation 위치와 remediation command를 출력.
|
|
- Local command output: `./gradlew :app-bootstrap:spotlessApply` — formatting 적용.
|
|
- Local command output: `./gradlew check` — formatting 적용 후 전체 check 통과.
|
|
|
|
## 해결 / Resolution
|
|
|
|
- 적용한 조치: `cd src && ./gradlew :app-bootstrap:spotlessApply`
|
|
- 검증 방법: `cd src && ./gradlew check`
|
|
- 잔여 위험 / 후속 작업: Java 파일을 수동 편집한 뒤에는 focused test 전후로 `spotlessApply` 또는
|
|
`spotlessJavaCheck`를 빠르게 돌리면 전체 `check` 재시도 비용을 줄일 수 있다.
|
|
|
|
## 회고 / Lessons
|
|
|
|
- 빨리 감지하는 신호: `spotlessJavaCheck FAILED`와 "Run './gradlew spotlessApply' to fix all violations."
|
|
- 예방 체크리스트 항목 후보: 새 Java 파일 추가 후 `./gradlew :app-bootstrap:spotlessApply` 실행.
|
|
- wiki로 끌어올릴 가치가 있는 일반화된 교훈: 없음. 프로젝트 로컬 formatter 운용 메모로 충분하다.
|
|
|
|
## Related / 관련
|
|
|
|
- 관련 branch note: [[raw/branch-notes/feature-startup-failure-log-suppression]]
|