BcelTypeArrayBuilder.createClassSet(newJars, newThirdPartyLoader, classSelector);
tab2.createClassSet(newJars, newThirdPartyLoader, classSelector);
    public void execute()    {        log("Running Clirr, built from tag $Name:  $", Project.MSG_VERBOSE);        if (origFiles == null || newFiles == null)        {            throw new BuildException(                "Missing nested filesets origFiles and newFiles.", getLocation());        }        if (newClassPath == null)        {            newClassPath = new Path(getProject());        }        if (origClassPath == null)        {            origClassPath = new Path(getProject());        }        final File[] origJars = scanFileSet(origFiles);        final File[] newJars = scanFileSet(newFiles);        if (origJars.length == 0)        {            throw new BuildException(                "No files in nested fileset origFiles - nothing to check!"                + " Please check your fileset specification.");        }        if (newJars.length == 0)        {            throw new BuildException(                "No files in nested fileset newFiles - nothing to check!"                + " Please check your fileset specification.");        }        final ClassLoader origThirdPartyLoader = createClasspathLoader(origClassPath);        final ClassLoader newThirdPartyLoader = createClasspathLoader(newClassPath);        final Checker checker = new Checker();        final ChangeCounter counter = new ChangeCounter();        boolean formattersWriteToStdOut = false;        for (Iterator it = formatters.iterator(); it.hasNext();)        {            Formatter formatter = (Formatter) it.next();            final String type = formatter.getType();            final String outFile = formatter.getOutFile();            formattersWriteToStdOut = formattersWriteToStdOut || outFile == null;            try            {                if (FORMATTER_TYPE_PLAIN.equals(type))                {                    checker.addDiffListener(new PlainDiffListener(outFile));                }                else if (FORMATTER_TYPE_XML.equals(type))                {                    checker.addDiffListener(new XmlDiffListener(outFile));                }            }            catch (IOException ex)            {                log("unable to initialize formatter: " + ex.getMessage(),                    Project.MSG_WARN);            }        }        if (!formattersWriteToStdOut)        {            checker.addDiffListener(new AntLogger(this));        }        checker.addDiffListener(counter);        try        {            ClassFilter classSelector = buildClassFilter();            final JavaType[] origClasses =                BcelTypeArrayBuilder.createClassSet(origJars, origThirdPartyLoader, classSelector);                        final JavaType[] newClasses =                BcelTypeArrayBuilder.createClassSet(newJars, newThirdPartyLoader, classSelector);                        checker.reportDiffs(origClasses, newClasses);        }        catch (CheckerException ex)        {            throw new BuildException(ex.getMessage());        }        if ((counter.getBinWarnings() > 0 && failOnBinWarning)            || (counter.getBinErrors() > 0 && failOnBinError))        {            throw new BuildException("detected binary incompatible API changes");        }        if ((counter.getSrcWarnings() > 0 && failOnSrcWarning)            || (counter.getSrcErrors() > 0 && failOnSrcError))        {            throw new BuildException("detected source incompatible API changes");        }    }