Skip to content

Commit 0ee82b1

Browse files
committed
handle jackson exception on no content
1 parent 767eadc commit 0ee82b1

File tree

10 files changed

+50
-10
lines changed

10 files changed

+50
-10
lines changed

src/main/java/vc/commands/ChatSearchCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package vc.commands;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
45
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
56
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
67
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
@@ -72,7 +73,10 @@ public Mono<Message> resolve(DeferrableInteractionEvent event, String word, int
7273
try {
7374
response = chatsApi.chatSearch(word, startDate, endDate, 25, page);
7475
} catch (final Exception e) {
75-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
76+
if (e instanceof ApiException apiException
77+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
78+
// fall through
79+
} else {
7680
LOGGER.error("Error searching for word: {}", word, e);
7781
}
7882
}

src/main/java/vc/commands/ChatsCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package vc.commands;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
45
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
56
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
67
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
@@ -49,7 +50,10 @@ private Mono<Message> resolveChats(final DeferrableInteractionEvent event, final
4950
try {
5051
chatsResponse = chatsApi.chats(identity.uuid(), null, startDate, endDate, 25, page);
5152
} catch (final Exception e) {
52-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
53+
if (e instanceof ApiException apiException
54+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
55+
// fall through
56+
} else {
5357
LOGGER.error("Error processing chats response", e);
5458
}
5559
}

src/main/java/vc/commands/ConnectionsCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package vc.commands;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
45
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
56
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
67
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
@@ -49,7 +50,10 @@ private Mono<Message> resolveConnections(final DeferrableInteractionEvent event,
4950
try {
5051
connectionsResponse = connectionsApi.connections(identity.uuid(), null, startDate, endDate, 25, page);
5152
} catch (final Exception e) {
52-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
53+
if (e instanceof ApiException apiException
54+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
55+
// fall through
56+
} else {
5357
LOGGER.error("Error processing connections response", e);
5458
}
5559
}

src/main/java/vc/commands/DataCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package vc.commands;
22

3+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
34
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
45
import discord4j.core.object.entity.Message;
56
import discord4j.core.spec.EmbedCreateSpec;
@@ -42,7 +43,10 @@ public Mono<Message> resolvePlayerDataDump(ChatInputInteractionEvent event, Prof
4243
try {
4344
playerDataDump = vcDataDumpApi.getPlayerDataDump(playerIdentity.uuid(), null);
4445
} catch (final Exception e){
45-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
46+
if (e instanceof ApiException apiException
47+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
48+
// fall through
49+
} else {
4650
LOGGER.error("Failed to get player data dump", e);
4751
}
4852
}

src/main/java/vc/commands/DeathsCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package vc.commands;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
45
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
56
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
67
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
@@ -49,7 +50,10 @@ private Mono<Message> resolveDeaths(final DeferrableInteractionEvent event, fina
4950
try {
5051
deathsResponse = deathsApi.deaths(identity.uuid(), null, startDate, endDate, 25, page);
5152
} catch (final Exception e) {
52-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
53+
if (e instanceof ApiException apiException
54+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
55+
// fall through
56+
} else {
5357
LOGGER.error("Failed to get deaths", e);
5458
}
5559
}

src/main/java/vc/commands/KillsCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package vc.commands;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
45
import discord4j.core.event.domain.interaction.ButtonInteractionEvent;
56
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
67
import discord4j.core.event.domain.interaction.DeferrableInteractionEvent;
@@ -49,7 +50,10 @@ private Mono<Message> resolveKills(final DeferrableInteractionEvent event, final
4950
try {
5051
killsResponse = deathsApi.kills(identity.uuid(), null, startDate, endDate, 25, page);
5152
} catch (final Exception e) {
52-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
53+
if (e instanceof ApiException apiException
54+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
55+
// fall through
56+
} else {
5357
LOGGER.error("Error resolving kills", e);
5458
}
5559
}

src/main/java/vc/commands/PlayerStatsCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package vc.commands;
22

3+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
34
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
45
import discord4j.core.object.entity.Message;
56
import discord4j.core.spec.EmbedCreateSpec;
@@ -47,7 +48,10 @@ public Mono<Message> handle(final ChatInputInteractionEvent event) {
4748
try {
4849
playerStats = statsApi.playerStats(playerIdentityOptional.get().uuid(), null);
4950
} catch (final Exception e) {
50-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
51+
if (e instanceof ApiException apiException
52+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
53+
// fall through
54+
} else {
5155
LOGGER.error("Failed to get stats for player: {}", playerIdentityOptional.get().uuid(), e);
5256
}
5357
}

src/main/java/vc/commands/PlaytimeCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package vc.commands;
22

3+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
34
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
45
import discord4j.core.object.entity.Message;
56
import discord4j.core.spec.EmbedCreateSpec;
@@ -44,7 +45,10 @@ private Mono<Message> resolvePlaytime(ChatInputInteractionEvent event, final Pro
4445
try {
4546
playtime = playtimeApi.playtime(profileUUID, null);
4647
} catch (final Exception e) {
47-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
48+
if (e instanceof ApiException apiException
49+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
50+
// fall through
51+
} else {
4852
LOGGER.error("Failed to get playtime for player: {}", profileUUID, e);
4953
}
5054
}

src/main/java/vc/commands/SeenCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package vc.commands;
22

3+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
34
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
45
import discord4j.core.object.entity.Message;
56
import discord4j.core.spec.EmbedCreateSpec;
@@ -47,7 +48,10 @@ private Mono<Message> resolveSeen(final ChatInputInteractionEvent event, final P
4748
try {
4849
seenResponse = seenApi.seen(uuid, null);
4950
} catch (final Exception e) {
50-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
51+
if (e instanceof ApiException apiException
52+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
53+
// fall through
54+
} else {
5155
LOGGER.error("Failed to get seen for player: {}", uuid, e);
5256
}
5357
}

src/main/java/vc/commands/WordCountCommand.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package vc.commands;
22

3+
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
34
import discord4j.core.event.domain.interaction.ChatInputInteractionEvent;
45
import discord4j.core.object.entity.Message;
56
import discord4j.core.spec.EmbedCreateSpec;
@@ -41,7 +42,10 @@ public Mono<Message> handle(final ChatInputInteractionEvent event) {
4142
try {
4243
count = chatsApi.wordCount(word).getCount();
4344
} catch (final Exception e) {
44-
if (!(e instanceof ApiException apiException) || apiException.getCode() != 204) {
45+
if (e instanceof ApiException apiException
46+
&& (apiException.getCause() instanceof MismatchedInputException || apiException.getCode() == 204)) {
47+
// fall through
48+
} else {
4549
LOGGER.error("Error getting word count: {}", word, e);
4650
}
4751
}

0 commit comments

Comments
 (0)