...
diff --git a/release-notes/CREDITS b/release-notes/CREDITS
index 67546e2..93ba7ac 100644
--- a/release-notes/CREDITS
+++ b/release-notes/CREDITS
@@ -890,6 +890,11 @@
* Reported [JACKSON-806]: REQUIRE_SETTERS_FOR_GETTERS ignores explicitly annotated getters
[1.9.6]
+Adam Vandenberg:
+ * Reported [JACKSON-823] MissingNode does not return default value for
+ 'asXxx()' methods
+ [1.9.7]
+
James Roper:
* Reported [JACKSON-829] Custom serializers not working for List<String>
properties, @JsonSerialize(contentUsing)
diff --git a/release-notes/VERSION b/release-notes/VERSION
index 664bd29..fcf0dea 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -16,6 +16,9 @@
* [Issue-14]: Annotations were not included from parent classes of
mix-in classes
(reported by @guillaup)
+ * [JACKSON-823] MissingNode does not return default value for 'asXxx()'
+ methods
+ (reported by Adam V)
* [JACKSON-829] Custom serializers not working for List<String> properties,
@JsonSerialize(contentUsing)
(reported by James R)
diff --git a/src/mapper/java/org/codehaus/jackson/node/MissingNode.java b/src/mapper/java/org/codehaus/jackson/node/MissingNode.java
index 20f52ec..05f066d 100644
--- a/src/mapper/java/org/codehaus/jackson/node/MissingNode.java
+++ b/src/mapper/java/org/codehaus/jackson/node/MissingNode.java
@@ -35,18 +35,23 @@
// as per [JACKSON-775]
@Override
public String asText() { return ""; }
-
+
+ @Override
+ public boolean asBoolean(boolean defaultValue) {
+ return defaultValue;
+ }
+
@Override
public int asInt(int defaultValue) {
- return 0;
+ return defaultValue;
}
@Override
public long asLong(long defaultValue) {
- return 0L;
+ return defaultValue;
}
@Override
public double asDouble(double defaultValue) {
- return 0.0;
+ return defaultValue;
}
@Override
diff --git a/src/test/org/codehaus/jackson/node/TestJsonNode.java b/src/test/org/codehaus/jackson/node/TestJsonNode.java
index 13db14d..b91c403 100644
--- a/src/test/org/codehaus/jackson/node/TestJsonNode.java
+++ b/src/test/org/codehaus/jackson/node/TestJsonNode.java
@@ -251,6 +251,12 @@
assertEquals("", n.toString());
// missing acts same as null, so:
- assertNodeNumbers(n, 0, 0.0);
+ assertNodeNumbersForNonNumeric(n);
+
+ // [JACKSON-823]
+ assertEquals(4, n.asInt(4));
+ assertEquals(5L, n.asLong(5));
+ assertEquals(0.25, n.asDouble(0.25));
+ assertTrue(n.asBoolean(true));
}
}