티스토리 뷰

개발환경 이전 작업중 테스트중 아래와 같은 에러 익셉션과 함께 해당 쿼리결과를 반환하지 못하는 문제가 있다. 

 

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 

### Error querying database.  Cause: java.lang.reflect.InaccessibleObjectException:

Unable to make public int java.util.Collections$EmptyList.size() accessible: module java.base does not "opens java.util" to unnamed module @7690781
### Cause: java.lang.reflect.InaccessibleObjectException: 

Unable to make public int java.util.Collections$EmptyList.size() accessible: module java.base does not "opens java.util" to unnamed module @7690781

 

문제는 mybatis 비교 구문에서 Collections 데이터를 size() 로 사용하여 처리한 부분인데 VM의 마이너 버전에 대한 문제인지 업데이트 인지 엑세스를 하지 못한다. 게다가 이미 컴파일된 라이브러리 안에 있는 부분이어서 손을 댈 수 없는 상황.

 

임시적인 해결방법이지만 실행시 vmargs 옵션에 아래와 같이 추가한다.

-vmargs --add-opens=java.base/java.util=ALL-UNNAMED
혹은 vmArgs 내에 

--add-opens=java.base/java.util=ALL-UNNAMED