Skip to content

Commit 1be1880

Browse files
authored
Merge pull request #16 from dai0304/feature/fix-issue-14
Catch IAE on decode
2 parents 0a1949c + d71f03d commit 1be1880

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

spar-wings-spring-data-chunk/src/main/java/jp/xet/sparwings/spring/data/chunk/SimplePaginationTokenEncoder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ <T> Optional<T> extractKey(String paginationToken, String key, Class<T> clazz) {
100100
if (paginationToken == null) {
101101
return Optional.empty();
102102
}
103-
byte[] json = decoder.decode(paginationToken);
104103
try {
104+
byte[] json = decoder.decode(paginationToken);
105105
JsonNode keyNode = objectMapper.readTree(json).path(key);
106106
T object = objectMapper.treeToValue(keyNode, clazz);
107107
return Optional.ofNullable(object);
108-
} catch (IOException e) {
108+
} catch (IOException | IllegalArgumentException e) {
109109
log.warn("Invalid pagination token: {}", paginationToken);
110110
}
111111
return Optional.empty();

spar-wings-spring-data-chunk/src/test/java/jp/xet/sparwings/spring/data/chunk/SimplePaginationTokenEncoderTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
import static org.hamcrest.Matchers.is;
1919
import static org.junit.Assert.assertThat;
2020

21+
import java.util.Optional;
22+
2123
import lombok.Data;
2224
import lombok.extern.slf4j.Slf4j;
2325

@@ -60,6 +62,18 @@ public void testInteger() {
6062
assertThat(last, is("234"));
6163
}
6264

65+
@Test
66+
public void testDecodeFirstInvalid() {
67+
Optional<String> actual = sut.extractFirstKey("1");
68+
assertThat(actual.isPresent(), is(false));
69+
}
70+
71+
@Test
72+
public void testDecodeLastInvalid() {
73+
Optional<String> actual = sut.extractLastKey("1");
74+
assertThat(actual.isPresent(), is(false));
75+
}
76+
6377
@Test
6478
public void testCompositeKey() {
6579
// setup

0 commit comments

Comments
 (0)