add checks for null arguments for issue 65
diff --git a/src/main/java/org/yaml/snakeyaml/JavaBeanDumper.java b/src/main/java/org/yaml/snakeyaml/JavaBeanDumper.java
index 0e6fe06..254394d 100644
--- a/src/main/java/org/yaml/snakeyaml/JavaBeanDumper.java
+++ b/src/main/java/org/yaml/snakeyaml/JavaBeanDumper.java
@@ -57,6 +57,12 @@
}
public JavaBeanDumper(Representer representer, DumperOptions options) {
+ if (representer == null) {
+ throw new NullPointerException("Representer must be provided.");
+ }
+ if (options == null) {
+ throw new NullPointerException("DumperOptions must be provided.");
+ }
this.options = options;
this.representer = representer;
}
diff --git a/src/main/java/org/yaml/snakeyaml/JavaBeanLoader.java b/src/main/java/org/yaml/snakeyaml/JavaBeanLoader.java
index 5194f95..881325f 100644
--- a/src/main/java/org/yaml/snakeyaml/JavaBeanLoader.java
+++ b/src/main/java/org/yaml/snakeyaml/JavaBeanLoader.java
@@ -34,6 +34,9 @@
private Loader loader;
public JavaBeanLoader(TypeDescription typeDescription) {
+ if (typeDescription == null) {
+ throw new NullPointerException("TypeDescription must be provided.");
+ }
Constructor constructor = new Constructor(typeDescription.getType());
typeDescription.setRoot(true);
constructor.addTypeDescription(typeDescription);
diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanDumperTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanDumperTest.java
index 274d3d1..d1dafcd 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanDumperTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanDumperTest.java
@@ -68,6 +68,24 @@
output);
}
+ public void testDumpObjectNullRepresenter() {
+ try {
+ new JavaBeanDumper(null, new DumperOptions());
+ fail();
+ } catch (NullPointerException e) {
+ assertEquals("Representer must be provided.", e.getMessage());
+ }
+ }
+
+ public void testDumpObjectNullOptions() {
+ try {
+ new JavaBeanDumper(new Representer(), null);
+ fail();
+ } catch (NullPointerException e) {
+ assertEquals("DumperOptions must be provided.", e.getMessage());
+ }
+ }
+
public static class DumpBean {
private String name;
private int number;
diff --git a/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java b/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
index 2e4d170..4e58169 100644
--- a/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
+++ b/src/test/java/org/yaml/snakeyaml/JavaBeanLoaderTest.java
@@ -64,6 +64,25 @@
assertEquals("Test me.", parsed.getName());
}
+ @SuppressWarnings("unchecked")
+ public void testLoaderNullClass() {
+ try {
+ new JavaBeanLoader<Bean>((Class) null);
+ fail();
+ } catch (NullPointerException e) {
+ assertEquals("Root type must be provided.", e.getMessage());
+ }
+ }
+
+ public void testLoaderNullTypeDescription() {
+ try {
+ new JavaBeanLoader<Bean>((TypeDescription) null);
+ fail();
+ } catch (NullPointerException e) {
+ assertEquals("TypeDescription must be provided.", e.getMessage());
+ }
+ }
+
public static class Bean {
private String name;
private int id;