Skip to content

Commit 63a8d69

Browse files
committed
- unify type-mismatch error on Jackson 3
1 parent 51316fe commit 63a8d69

2 files changed

Lines changed: 27 additions & 6 deletions

File tree

modules/jooby-jackson3/src/main/java/io/jooby/internal/jackson3/JacksonJsonRpcReader.java

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package io.jooby.internal.jackson3;
77

88
import io.jooby.exception.MissingValueException;
9+
import io.jooby.exception.TypeMismatchException;
910
import io.jooby.jsonrpc.JsonRpcDecoder;
1011
import io.jooby.jsonrpc.JsonRpcReader;
1112
import tools.jackson.databind.JsonNode;
@@ -61,27 +62,47 @@ public boolean nextIsNull(String name) {
6162

6263
@Override
6364
public int nextInt(String name) {
64-
return requireNode(name).asInt();
65+
var node = requireNode(name);
66+
if (node.isInt()) {
67+
return node.asInt();
68+
}
69+
throw new TypeMismatchException(name, int.class);
6570
}
6671

6772
@Override
6873
public long nextLong(String name) {
69-
return requireNode(name).asLong();
74+
var node = requireNode(name);
75+
if (node.isLong()) {
76+
return node.longValue();
77+
}
78+
throw new TypeMismatchException(name, long.class);
7079
}
7180

7281
@Override
7382
public boolean nextBoolean(String name) {
74-
return requireNode(name).asBoolean();
83+
var node = requireNode(name);
84+
if (node.isBoolean()) {
85+
return node.booleanValue();
86+
}
87+
throw new TypeMismatchException(name, boolean.class);
7588
}
7689

7790
@Override
7891
public double nextDouble(String name) {
79-
return requireNode(name).asDouble();
92+
var node = requireNode(name);
93+
if (node.isDouble()) {
94+
return node.asDouble();
95+
}
96+
throw new TypeMismatchException(name, double.class);
8097
}
8198

8299
@Override
83100
public String nextString(String name) {
84-
return requireNode(name).asText();
101+
var node = requireNode(name);
102+
if (node.isString()) {
103+
return node.asString();
104+
}
105+
throw new TypeMismatchException(name, String.class);
85106
}
86107

87108
@Override

tests/src/test/resources/logback.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<configuration>
33
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
44
<encoder>
5-
<pattern>%-5p [%d{ISO8601}] [%thread] %msg %ex%n</pattern>
5+
<pattern>%-5p [%d{ISO8601}] [%thread] %msg %ex{0}%n</pattern>
66
</encoder>
77
</appender>
88

0 commit comments

Comments
 (0)