Commit b5fe3c34 authored by Phillip Webb's avatar Phillip Webb

Refine YAML type restriction error

Closes gh-21596
parent 95031295
......@@ -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);
}
}
......
......@@ -36,7 +36,8 @@ public class YamlJsonParserTests extends AbstractJsonParserTests {
@Test
public 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);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment