- analysis/·source-index·state.json 을 final/document.md 제2부·제3부로 접었다. SSOT 는 하나다 - 파일럿 — commit-ambiguity-as-a-result 를 새 기준으로 재선별. 후보 14 → 글감 5 (PROMOTE 5 · MERGE_INTO 3 · KEEP_IN_SSOT 4 · 보류 2). 기록 5건을 다시 썼고 그림 1개를 techviz 로 만들었다 - 재선별이 잡은 것: 제1부 §6.2·§11.1 이 자기 §13.2 와 어긋나 있었다(레인을 안 돌렸다 vs 돌렸다) — 정정. 이미 답이 나와 있던 Question 을 HEAD 재실행 질문으로 다시 세웠다. Concept 이 인용한 코드가 SSOT 에 없어 뺐다 - candidateScope·sourceRepository 기록. 나머지 43개 주제는 재선별 대기(PENDING 905) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
4.7 KiB
kind: CASE slug: messaging-kafka-share-experimental-f01 title: "등록"이 아무것도 등록하지 않고 성공을 반환한다 topic: transport-and-provider-semantics project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: case:messaging-kafka-share-experimental-f01 evidenceCapturedOn: 2026-09-01 assets:
- key: messaging-kafka-share-experimental-f01 file: ../../../final/evidence/rendered/messaging-kafka-share-experimental-f01.svg
- key: messaging-kafka-share-experimental-f01-diagram file: ../../../final/assets/diagrams/messaging-kafka-share-experimental-f01.svg evidence:
- ../../../final/evidence/raw/messaging-kafka-share-experimental-f01.txt source:
- 원본 분석 절은 final/document.md#a19-messaging-kafka-share-experimental#L467 이다. module: messaging-kafka-share-experimental priority: P2
"등록"이 아무것도 등록하지 않고 성공을 반환한다
KafkaShareGroupRegistrar.register(profile, spec)이 spec을 Objects.requireNonNull로만 처리하고 버린다. ShareRegistration은 profile과 AtomicBoolean 둘만 갖는다.
관계
- 허용 의존 목록은 상한이므로 미사용을 잡지 않는다 — 그것을 잡으려면 별도 검사가 필요하다 같은 분석 리프에서 끌어낸 규칙이다.
- leaf의 각 public 클래스는 자기 레인에 테스트를 갖는다 같은 분석 리프에서 끌어낸 규칙이다.
- 에러 메시지가 지시하는 설정은 그 설정을 읽는 코드와 함께 존재해야 한다 같은 분석 리프에서 끌어낸 규칙이다.
- 구성 오류는 한 예외 타입과 안정 코드로 보고한다 같은 분석 리프에서 끌어낸 규칙이다.
문제
KafkaShareGroupRegistrar.register(profile, spec)이 spec을 Objects.requireNonNull로만 처리하고 버린다.
ShareRegistration은 profile과 AtomicBoolean 둘만 갖는다.
결론
Kafka 소비자가 만들어지지 않고(import org.apache.kafka 0건), spec.sink가 저장되지 않으므로 어떤 전달도 일어나지 않는다.
반환된 registration은 isActive() == true를 보고한다.
같은 클래스의 javadoc이 pause를 조용히 무시하는 것을 거절한 이유로 "would let a retry policy that depends on pausing appear to work while doing nothing"을 든다.
register 자체가 정확히 그 형태다 — 성공을 반환하고 아무것도 하지 않으며 isActive()가 true다.
오늘 호출자가 없으므로 사고는 아니지만, 이 leaf를 배선하는 사람이 가장 먼저 부를 메서드다.
검증 환경
OpenJDK : 21.0.12 java -version 으로 확인 Gradle : 9.0.0 src/gradle/wrapper/gradle-wrapper.properties 의 distributionUrl 로 확인 확인 방식 : register 본문에서 spec 이 보관되는 필드 유무와 sink 호출 지점 확인 소스 수정 : x
재현 조건
원문은 final/document.md#a19-messaging-kafka-share-experimental#L467 에 있다.
본문
KafkaShareGroupRegistrar.register(profile, spec)이 spec을 Objects.requireNonNull로만 처리하고 버린다.
등록이 버리는 것
:::evidence key="messaging-kafka-share-experimental-f01-diagram" alt="profile 과 AtomicBoolean 만 register 가 보관하는 것 안에 놓이고 spec 과 sink 가 바깥에 빗금으로 놓인다" caption="등록이 버리는 것" zoom="false" :::
ShareRegistration은 profile과 AtomicBoolean 둘만 갖는다. Kafka 소비자가 만들어지지 않고(import org.apache.kafka 0건), spec.sink가 저장되지 않으므로 어떤 전달도 일어나지 않는다.
register 가 spec 에 하는 일
:::evidence key="messaging-kafka-share-experimental-f01" alt="분석 문서 final/document.md#a19-messaging-kafka-share-experimental 에서 이 기록의 근거 절을 그대로 잘라낸 15줄. 코드베이스를 측정한 것이 아니라 원본 판정이 무엇을 적었는지를 보여 준다." caption="final/document.md#a19-messaging-kafka-share-experimental 발췌 — 15줄" zoom="true" :::
같은 클래스가 이 형태를 거절한 적이 있다
반환된 registration은 isActive() == true를 보고한다. 같은 클래스의 javadoc이 pause를 조용히 무시하는 것을 거절한 이유로 "would let a retry policy that depends on pausing appear to work while doing nothing"을 든다. register 자체가 정확히 그 형태다 — 성공을 반환하고 아무것도 하지 않으며 isActive()가 true다.
오늘 호출자는 없다
사고는 아니지만, 이 leaf를 배선하는 사람이 가장 먼저 부를 메서드다.
확인하지 못한 것
이 리프를 완성할 계획이 있는지 확인할 수 없었다. 커밋이 대량 커밋뿐이고 기록이 없다.