...
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)); } }