https://github.com/OPGG-HACKTHON/MusicWard-Server/issues/162
spotify에서 아무 데이터도 조회되지 않는 경우 비어있는 list에 index 접근을 시도하기 때문에 IndexOutOfBoundsException
을 던진다.
public NonPlaylistsResponse toNonPlaylists() {
List<NonPlaylistsResponse.Playlist> nonPlaylists = new ArrayList<>();
for (Item item : items) {
Item.Image originalImage = item.images.get(0);
NonPlaylistsResponse.Playlist.Image image = NonPlaylistsResponse.Playlist.Image
.builder()
.url(originalImage.getUrl())
.width(originalImage.getWidth())
.height(originalImage.getHeight())
.build();
NonPlaylistsResponse.Playlist nonPlaylist = NonPlaylistsResponse.Playlist.builder()
.originalId(item.getId())
.originalTitle(item.getName())
.originalDescription(item.getDescription())
.image(image)
.externalUrl(item.getExternal_urls().getSpotify())
.build();
nonPlaylists.add(nonPlaylist);
}
return NonPlaylistsResponse.builder()
.provider(Provider.SPOTIFY)
.items(nonPlaylists)
.build();
}
Item.Image originalImage = item.images.get(0)
에 접근하면서 발생
public NonPlaylistsResponse toNonPlaylists() {
List<NonPlaylistsResponse.Playlist> nonPlaylists = new ArrayList<>();
for (Item item : items) {
if (item != null && !item.images.isEmpty()) {
Item.Image originalImage = item.images.get(0);
NonPlaylistsResponse.Playlist.Image image = NonPlaylistsResponse.Playlist.Image
.builder()
.url(originalImage.getUrl())
.width(originalImage.getWidth())
.height(originalImage.getHeight())
.build();
NonPlaylistsResponse.Playlist nonPlaylist = NonPlaylistsResponse.Playlist.builder()
.originalId(item.getId())
.originalTitle(item.getName())
.originalDescription(item.getDescription())
.image(image)
.externalUrl(item.getExternal_urls().getSpotify())
.build();
nonPlaylists.add(nonPlaylist);
}
}
return NonPlaylistsResponse.builder()
.provider(Provider.SPOTIFY)
.items(nonPlaylists)
.build();
}
추가적인 if 검증을 통하여 개선