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(