From 8b31f08c8e3dfd5887ca4c5810e43f7170182fe4 Mon Sep 17 00:00:00 2001 From: Magesh Umasankar Date: Tue, 17 Jun 2003 15:49:00 +0000 Subject: [PATCH] Throw a build exception if a public constructor that takes in a Reader as its sole argument is absent. PR: 20768 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274673 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tools/ant/filters/util/ChainReaderHelper.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/org/apache/tools/ant/filters/util/ChainReaderHelper.java b/src/main/org/apache/tools/ant/filters/util/ChainReaderHelper.java index ef1b59dd2..7267d7505 100644 --- a/src/main/org/apache/tools/ant/filters/util/ChainReaderHelper.java +++ b/src/main/org/apache/tools/ant/filters/util/ChainReaderHelper.java @@ -185,14 +185,21 @@ public final class ChainReaderHelper { final Constructor[] constructors = clazz.getConstructors(); int j = 0; + boolean consPresent = false; for (; j < constructors.length; j++) { Class[] types = constructors[j] .getParameterTypes(); if (types.length == 1 && types[0].isAssignableFrom(Reader.class)) { + consPresent = true; break; } } + if ( !consPresent ) { + throw new BuildException( className + + " does not define a public constructor" + + " that takes in a Reader as its single argument."); + } final Reader[] rdr = {instream}; instream = (Reader) constructors[j].newInstance(rdr);