Browse Source

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
master
Magesh Umasankar 22 years ago
parent
commit
8b31f08c8e
1 changed files with 7 additions and 0 deletions
  1. +7
    -0
      src/main/org/apache/tools/ant/filters/util/ChainReaderHelper.java

+ 7
- 0
src/main/org/apache/tools/ant/filters/util/ChainReaderHelper.java View File

@@ -185,14 +185,21 @@ public final class ChainReaderHelper {
final Constructor[] constructors = final Constructor[] constructors =
clazz.getConstructors(); clazz.getConstructors();
int j = 0; int j = 0;
boolean consPresent = false;
for (; j < constructors.length; j++) { for (; j < constructors.length; j++) {
Class[] types = constructors[j] Class[] types = constructors[j]
.getParameterTypes(); .getParameterTypes();
if (types.length == 1 && if (types.length == 1 &&
types[0].isAssignableFrom(Reader.class)) { types[0].isAssignableFrom(Reader.class)) {
consPresent = true;
break; 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}; final Reader[] rdr = {instream};
instream = instream =
(Reader) constructors[j].newInstance(rdr); (Reader) constructors[j].newInstance(rdr);


Loading…
Cancel
Save