앱 테스트 진행 중에 다음과 같은 Exception이 발생했다. Fatal Exception: java.util.ConcurrentModificationException 여러 스레드에서 하나의 컬렉션에 접근할 때, 동시성 문제가 발생하는 것으로 확인된다. 문제가 발생한 코드로 이동해 보니... object DataManager { private var dataInfos = ArrayList() ..... object Manager 내부의 dataInfos라는 리스트가 있고, 해당 DataManager가 외부에서 여러 스레드에 동시 호출되며 dataInfos에 접근하던 중 문제가 발생하는 것으로 확인했다. 싱글톤 하위 리스트를 여러 스레드 접근에 안전하도록 처리할 필요가 있었다. object DataMan..
개발
아래와 같이 api 호출 인터페이스를 구성하여 서버와의 통신을 시도했는데, EOFException이 발생했다. interface TestApi { @PUT("/api/test") fun update( @HeaderMap headers: HashMap, @Body request: BodyRequest ): Call } java.io.EOFException: End of input at line 1 column 1 path 통신 후, Response를 반환하는데 Empty Response를 반환하고 있었다. 하지만 내가 작업하면서 NormalResponse Type으로 반환되도록 구성하면서 발생하는 것이 원인이었다. 이 경우 2가지 해결 방법이 존재했다. 1. NormalResponse가 아니라 Unit으로..