diff --git a/src/main/java/net/openhft/chronicle/wire/TextWire.java b/src/main/java/net/openhft/chronicle/wire/TextWire.java index 14ce568c4e..80447d009a 100755 --- a/src/main/java/net/openhft/chronicle/wire/TextWire.java +++ b/src/main/java/net/openhft/chronicle/wire/TextWire.java @@ -3142,7 +3142,8 @@ public boolean bool() { return true; if (ObjectUtils.isFalse(sb)) return false; - throw new IORuntimeException("Unable to parse '" + sb + "' as a boolean flag"); + Jvm.debug().on(getClass(), "Unable to parse '" + sb + "' as a boolean flag, assuming false"); + return false; } @Override diff --git a/src/main/java/net/openhft/chronicle/wire/Wires.java b/src/main/java/net/openhft/chronicle/wire/Wires.java index 0127f2fe3d..45ed9037d6 100755 --- a/src/main/java/net/openhft/chronicle/wire/Wires.java +++ b/src/main/java/net/openhft/chronicle/wire/Wires.java @@ -494,7 +494,9 @@ public static E object0(ValueIn in, @Nullable E using, @Nullable Class clazz case NONE: @NotNull final Object e = strategy.readUsing(using, in); - return clazz == Base64.class ? (E) e : (E) ObjectUtils.convertTo(clazz, e); + return clazz == Base64.class + ? (E) e + : (E) ObjectUtils.convertTo(clazz, e); default: throw new AssertionError(); diff --git a/src/test/java/net/openhft/chronicle/wire/TextWireTest.java b/src/test/java/net/openhft/chronicle/wire/TextWireTest.java index 5cc917fad7..ad29120295 100755 --- a/src/test/java/net/openhft/chronicle/wire/TextWireTest.java +++ b/src/test/java/net/openhft/chronicle/wire/TextWireTest.java @@ -232,6 +232,37 @@ public void testSimpleBool() { assertEquals(true, wire.read(() -> "T").bool()); } + @Test + public void testFailingBool() { + @NotNull Wire wire = createWire(); + + wire.write(() -> "A").text(""); + wire.write(() -> "B").text("other"); + assertEquals("A: \"\"\n" + + "B: other\n", wire.toString()); + @NotNull String expected = "{A=, B=other}"; + expectWithSnakeYaml(expected, wire); + + assertEquals(false, wire.read(() -> "A").bool()); + assertEquals(false, wire.read(() -> "B").bool()); + } + + @Test + public void testFailingBoolean() { + @NotNull Wire wire = createWire(); + + wire.write(() -> "A").text(""); + wire.write(() -> "B").text("other"); + assertEquals("A: \"\"\n" + + "B: other\n", wire.toString()); + @NotNull String expected = "{A=, B=other}"; + expectWithSnakeYaml(expected, wire); + + // TODO fix. +// assertEquals(null, wire.read(() -> "A").object(Boolean.class)); + assertEquals(false, wire.read(() -> "B").object(Boolean.class)); + } + @Test public void testLeadingSpace() { @NotNull Wire wire = createWire();