diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/json/YamlJsonParser.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/json/YamlJsonParser.java index afec8622d9f..e25dbd2d4bb 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/json/YamlJsonParser.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/json/YamlJsonParser.java @@ -26,6 +26,8 @@ import java.util.stream.Collectors; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; +import org.springframework.util.Assert; + /** * Thin wrapper to adapt Snake {@link Yaml} to {@link JsonParser}. * @@ -63,7 +65,9 @@ public class YamlJsonParser extends AbstractJsonParser { @Override protected Class getClassForName(String name) throws ClassNotFoundException { - return (SUPPORTED_TYPES.contains(name)) ? super.getClassForName(name) : null; + Assert.state(SUPPORTED_TYPES.contains(name), + () -> "Unsupported '" + name + "' type encountered in YAML document"); + return super.getClassForName(name); } } diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/YamlJsonParserTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/YamlJsonParserTests.java index 1f696dfccc5..b32042f00d1 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/YamlJsonParserTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/json/YamlJsonParserTests.java @@ -36,7 +36,8 @@ public class YamlJsonParserTests extends AbstractJsonParserTests { @Test void customTypesAreNotLoaded() throws Exception { assertThatExceptionOfType(ConstructorException.class) - .isThrownBy(() -> getParser().parseMap("{value: !!java.net.URL [\"http://localhost:9000/\"]}")); + .isThrownBy(() -> getParser().parseMap("{value: !!java.net.URL [\"http://localhost:9000/\"]}")) + .withCauseInstanceOf(IllegalStateException.class); } }