Zayson
A to Zayson!
Zayson
전체 방문자
오늘
어제
  • 분류 전체보기 (132)
    • Computer Science (20)
      • Network (4)
      • DB (12)
      • OS (4)
    • Algorithm (32)
      • 완전탐색(Brute-Force) (3)
      • 그리디(Greedy) (6)
      • 투포인터(Two-Pointer) (1)
      • 그래프(Graph) (5)
      • BFS & DFS (9)
      • 구현, 시뮬레이션(Implementation) (5)
      • 다이나믹 프로그래밍(DP) (3)
    • Backend (51)
      • Spring Boot (19)
      • JPA (16)
      • Kafka (2)
      • Java (13)
      • Kotlin (1)
    • DevOps (1)
      • Jenkins (5)
      • Oracle Cloud Infrastructure (1)
      • Kubernetes & Docker (1)
    • Trouble Shooting (3)
      • JPA (1)
      • Spring Boot (2)
    • 회고 (5)
      • 엔빵 프로젝트 포스트 로드맵 (1)
      • 2022년 (4)
    • Kafka (7)
      • Kafka (5)
      • Kafka Connect (2)
    • 기술 서적 (6)
      • 데이터 중심 애플리케이션 설계 (3)
      • 개발자가 반드시 정복해야할 객체 지향과 디자인 패턴 (2)
      • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • dfs
  • Java
  • 관계형 데이터베이스 실전 입문
  • 엔빵프로젝트
  • CS
  • 구현
  • 그리디
  • spring boot
  • JPA
  • Backend
  • SpringBoot
  • Computer science
  • 라이브스터디
  • kafka
  • Kafka Connect
  • 나 혼자 스프링부트!
  • 백준
  • BFS
  • 프로그래머스
  • 완전탐색

최근 글

티스토리

hELLO · Designed By 정상우.
Zayson

A to Zayson!

java.lang.UnsupportedOperationException 에러
Trouble Shooting/Spring Boot

java.lang.UnsupportedOperationException 에러

2022. 6. 20. 10:20

상황

Service 로직 테스트 코드를 작성하는 도중 findNotice.getNoticeImages().clear(); 부분에서 에러가 발생하는 것을 확인했다.

 

문제 파악

테스트 코드를 작성하기 위해 Builder를 작성하는 도중 List 타입 데이터에 대해 new ArrayList형식이 아닌 Arrays.asList 방식으로 데이터를 초기화 했다

private Notice testNotice() {
		return Notice.builder()
            .noticeId(1L)
            .title("title")
            .noticeDetail("detail")
            .regYmd(LocalDateTime.now())
            .noticeImages(Arrays.asList(testImage(1L, "test1"), testImage(2L, "test2")))  // 이 부분이 문제
            .build();
}

java.lang.UnsupportedOperationException 에러는 new로 생성하지 않은 List의 데이터를 변경할때 발생했다.

위의 코드에서는 noticeImages가 findNotice.getNoticeImages().clear()가 호출되는 부분이다. new 키워드로 생성하지 않은 List 데이터를 clear()하려고 하니 에러가 발생한 것이다.

 

해결

Arrays.asList() 로 작성한 코드를 new ArrayList<>(Arrays.asList())형식으로 변경해준다.

private Notice testNotice() {
        return Notice.builder()
                .noticeId(1L)
                .title("title")
                .noticeDetail("detail")
                .regYmd(LocalDateTime.now())
                .noticeImages(new ArrayList<>(Arrays.asList(testImage(1L, "test1"), testImage(2L, "test2")))) // new ArrayList<>()로 변경
                .build();
}

반응형
저작자표시 비영리 변경금지 (새창열림)

'Trouble Shooting > Spring Boot' 카테고리의 다른 글

@DataJpaTest 사용 시 Failed To Replace DataSource with an Embedded database for test 이슈  (0) 2022.05.22
    'Trouble Shooting/Spring Boot' 카테고리의 다른 글
    • @DataJpaTest 사용 시 Failed To Replace DataSource with an Embedded database for test 이슈
    Zayson
    Zayson
    공부한 내용을 정리하는 공간

    티스토리툴바