From 99a7f5916b38113f7e80997cd6b576c624b6efcd Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Sun, 15 Oct 2017 07:24:15 +0200 Subject: [PATCH] createAndSet never returns null based on pytch by Kui Liu --- .../apache/tools/ant/AntTypeDefinition.java | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/main/org/apache/tools/ant/AntTypeDefinition.java b/src/main/org/apache/tools/ant/AntTypeDefinition.java index 104820f17..c7b223cef 100644 --- a/src/main/org/apache/tools/ant/AntTypeDefinition.java +++ b/src/main/org/apache/tools/ant/AntTypeDefinition.java @@ -217,19 +217,12 @@ public class AntTypeDefinition { return null; } Object o = createAndSet(project, c); - if (o == null || adapterClass == null) { + if (adapterClass == null + || (adaptToClass != null && adaptToClass.isAssignableFrom(o.getClass()))) { return o; } - if (adaptToClass != null) { - if (adaptToClass.isAssignableFrom(o.getClass())) { - return o; - } - } TypeAdapter adapterObject = (TypeAdapter) createAndSet( project, adapterClass); - if (adapterObject == null) { - return null; - } adapterObject.setProxy(o); return adapterObject; } @@ -257,9 +250,6 @@ public class AntTypeDefinition { || !adaptToClass.isAssignableFrom(clazz))) { TypeAdapter adapter = (TypeAdapter) createAndSet( project, adapterClass); - if (adapter == null) { - throw new BuildException("Unable to create adapter object"); - } adapter.checkProxyClass(clazz); } } @@ -267,12 +257,11 @@ public class AntTypeDefinition { /** * Get the constructor of the definition * and invoke it. - * @return the instantiated Object. + * @return the instantiated Object, will never be null. */ private Object createAndSet(Project project, Class c) { try { - Object o = innerCreateAndSet(c, project); - return o; + return innerCreateAndSet(c, project); } catch (InvocationTargetException ex) { Throwable t = ex.getTargetException(); throw new BuildException(