Contribution · Spring Modulith · JPA Event Publication

Spring Modulith — JpaEventPublicationAdapter#getStatus 영속 상태 반환

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

문제 — GH-1683

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

수정

getStatus()가 영속 상태를 다시 조회하도록 변경. JdbcEventPublicationRepositoryV2의 패턴을 그대로 따랐습니다. 회귀 테스트로 markFailedgetStatus 라운드트립을 검증해, 어댑터가 영속 갱신 결과를 반환하는지 직접 확인.

PR

관련 자료