Contribution · Spring Modulith · JPA Event Publication
Spring Modulith — JpaEventPublicationAdapter#getStatus 영속 상태 반환
JpaEventPublicationAdapter#getStatus()가 영속 상태 대신 메모리 값을 돌려주던 버그를 수정했습니다. JdbcEventPublicationRepositoryV2가 이미 적용 중인 패턴과 동일하게 맞추고, markFailed 라운드트립 회귀 테스트를 추가했습니다.
문제 — GH-1683
JpaEventPublicationAdapter의 getStatus()는 wrapping된 JpaEventPublication 엔티티의 메모리 필드를 그대로 돌려주고 있었습니다. 같은 publication에 대해 markFailed(...) 같이 영속 상태를 갱신하는 호출이 들어와도, 어댑터 인스턴스가 캐시한 엔티티의 in-memory 상태와 DB 상태가 어긋날 수 있는 구조였습니다. JDBC 쪽 새 구현(JdbcEventPublicationRepositoryV2)은 이미 같은 시나리오에서 영속 상태를 조회하도록 맞춰져 있어 두 어댑터 간의 동작 불일치가 발생했습니다.
수정
getStatus()가 영속 상태를 다시 조회하도록 변경. JdbcEventPublicationRepositoryV2의 패턴을 그대로 따랐습니다. 회귀 테스트로 markFailed → getStatus 라운드트립을 검증해, 어댑터가 영속 갱신 결과를 반환하는지 직접 확인.