Skip to content

Commit 5b5c9f3

Browse files
committed
Fixed error message shown when entering the imports page [#2564]
1 parent 9cad87c commit 5b5c9f3

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

comixed-rest/src/main/java/org/comixedproject/rest/comicfiles/ComicFileController.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import jakarta.servlet.http.HttpSession;
2727
import java.io.IOException;
2828
import java.util.ArrayList;
29+
import java.util.Collections;
2930
import java.util.List;
3031
import java.util.Objects;
3132
import lombok.extern.log4j.Log4j2;
@@ -75,11 +76,16 @@ public LoadComicFilesResponse loadComicFilesFromSession(final HttpSession sessio
7576
throws JsonProcessingException {
7677
log.info("Loading comic files from user session");
7778
if (session.getAttribute(COMIC_FILES) == null) {
78-
return null;
79+
return new LoadComicFilesResponse(Collections.emptyList());
80+
}
81+
List<ComicFileGroup> comicFiles = null;
82+
try {
83+
comicFiles = this.doLoadComicFileSelections(session);
84+
} catch (JsonProcessingException error) {
85+
log.error("Failed to parse comic files in session", error);
7986
}
80-
final List<ComicFileGroup> comicFiles = this.doLoadComicFileSelections(session);
8187
if (Objects.isNull(comicFiles)) {
82-
return null;
88+
return new LoadComicFilesResponse(Collections.emptyList());
8389
}
8490
return new LoadComicFilesResponse(comicFiles);
8591
}

comixed-rest/src/test/java/org/comixedproject/rest/comicfiles/ComicFileControllerTest.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ void loadComicFilesFromSession_nothingStored() throws JsonProcessingException {
110110

111111
final LoadComicFilesResponse result = controller.loadComicFilesFromSession(session);
112112

113-
assertNull(result);
113+
assertNotNull(result);
114+
assertTrue(result.getGroups().isEmpty());
114115

115116
Mockito.verify(session, Mockito.times(1)).getAttribute(COMIC_FILES);
116117
Mockito.verify(objectMapper, Mockito.never())
@@ -123,20 +124,17 @@ void loadComicFilesFromSession_parsingError() throws JsonProcessingException {
123124
Mockito.when(objectMapper.readValue(Mockito.anyString(), typeReferenceArgumentCaptor.capture()))
124125
.thenThrow(JsonProcessingException.class);
125126

126-
assertThrows(
127-
JsonProcessingException.class,
128-
() -> {
129-
final LoadComicFilesResponse result = controller.loadComicFilesFromSession(session);
127+
final LoadComicFilesResponse result = controller.loadComicFilesFromSession(session);
130128

131-
assertNull(result);
129+
assertNotNull(result);
130+
assertTrue(result.getGroups().isEmpty());
132131

133-
final TypeReference<ComicFile> typeReference = typeReferenceArgumentCaptor.getValue();
134-
assertNotNull(typeReference);
132+
final TypeReference<ComicFile> typeReference = typeReferenceArgumentCaptor.getValue();
133+
assertNotNull(typeReference);
135134

136-
Mockito.verify(session, Mockito.times(1)).getAttribute(COMIC_FILES);
137-
Mockito.verify(objectMapper, Mockito.times(1))
138-
.readValue(TEST_ENCODED_COMIC_FILES, typeReference);
139-
});
135+
Mockito.verify(session, Mockito.times(2)).getAttribute(COMIC_FILES);
136+
Mockito.verify(objectMapper, Mockito.times(1))
137+
.readValue(TEST_ENCODED_COMIC_FILES, typeReference);
140138
}
141139

142140
@Test

0 commit comments

Comments
 (0)