Spring Modulith · closed

PR #1714 — GH-1683: Return persisted status from JpaEventPublicationAdapter#getStatus

JpaEventPublicationAdapter#getStatus()가 영속 상태 대신 메모리 값을 돌려주던 버그를 수정. JdbcEventPublicationRepositoryV2가 이미 적용 중인 패턴과 동일하게 맞추고 markFailed 라운드트립 회귀 테스트 추가.

증상

JpaEventPublicationAdaptergetStatus()는 wrapping된 JpaEventPublication 엔티티의 메모리 필드를 그대로 돌려주고 있었습니다. 같은 publication에 대해 markFailed(...)로 영속 상태를 갱신하는 호출이 들어와도 어댑터가 캐시한 엔티티의 in-memory 상태와 DB 상태가 어긋날 수 있는 구조 — JDBC 쪽 JdbcEventPublicationRepositoryV2는 이미 같은 시나리오에서 영속 상태를 조회하도록 맞춰져 있어 어댑터 간 동작 불일치 발생.

수정

getStatus()가 영속 상태를 다시 조회하도록 변경. JdbcEventPublicationRepositoryV2의 패턴을 그대로 따랐습니다.

회귀 테스트

markFailedgetStatus 라운드트립이 영속 상태를 그대로 반환하는지 직접 검증하는 테스트 추가.

관련 자료