Skip to content

Commit 0d9322f

Browse files
committed
BUG SearchIssue id can be bigger than Integer.MAX
Represent it as Long instead of Integer. For schema (where id is specified as 'int64') see: https://docs.github.com/en/rest/search/search?apiVersion=2022-11-28#search-issues-and-pull-requests
1 parent 020311e commit 0d9322f

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

src/main/java/com/spotify/github/v3/issues/Issue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public interface Issue extends CloseTracking {
4141

4242
/** ID. */
4343
@Nullable
44-
Integer id();
44+
Long id();
4545

4646
/** URL. */
4747
@Nullable

src/test/java/com/spotify/github/v3/clients/SearchClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,6 @@ public void testSearchIssue() throws Exception {
6363
when(github.request(ISSUES_URI + "?q=bogus-q", SearchIssues.class)).thenReturn(fixture);
6464
final SearchIssues search =
6565
searchClient.issues(ImmutableSearchParameters.builder().q("bogus-q").build()).get();
66-
assertSearchIssues(search);
66+
assertSearchIssues(search, 35802);
6767
}
6868
}

src/test/java/com/spotify/github/v3/search/SearchTest.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,15 @@
3434

3535
public class SearchTest {
3636

37-
public static final void assertSearchIssues(final SearchIssues search) {
37+
public static final void assertSearchIssues(final SearchIssues search, long id) {
3838
final Issue issues = search.items().get(0);
3939
assertThat(search.totalCount(), is(280));
4040
assertThat(search.incompleteResults(), is(false));
4141
assertThat(
4242
issues.url(),
4343
is(URI.create("https://api.github.com/repos/batterseapower/pinyin-toolkit/issues/132")));
4444
assertThat(issues.number(), is(132));
45-
assertThat(issues.id(), is(35802));
45+
assertThat(issues.id(), is(id));
4646
assertThat(issues.title(), is("Line Number Indexes Beyond 20 Not Displayed"));
4747
}
4848

@@ -52,6 +52,15 @@ public void testDeserialization() throws IOException {
5252
Resources.toString(getResource(this.getClass(), "issues.json"), defaultCharset());
5353

5454
final SearchIssues search = Json.create().fromJson(fixture, SearchIssues.class);
55-
assertSearchIssues(search);
55+
assertSearchIssues(search, 35802);
56+
}
57+
58+
@Test
59+
public void testDeserializationWithLargeIssueId() throws IOException {
60+
final String fixture =
61+
Resources.toString(getResource(this.getClass(), "issues-with-large-id.json"), defaultCharset());
62+
63+
final SearchIssues search = Json.create().fromJson(fixture, SearchIssues.class);
64+
assertSearchIssues(search, 2147534768L);
5665
}
5766
}

0 commit comments

Comments
 (0)