pmd/src/net/sourceforge/pmd/PMD.java
Report report = new Report();
            ctx.setReport(report);

                report.addError(
                report.addError(
                report.addError(
            return report;
    public static void processFiles(int threadCount, RuleSetFactory ruleSetFactory, SourceType sourceType, List<DataSource> files, RuleContext ctx,
            Renderer renderer, String rulesets, boolean debugEnabled, final boolean shortNamesEnabled, final String inputPath,
        List<Future<Report>> tasks = new LinkedList<Future<Report>>();
        
        Collections.sort(files, new Comparator<DataSource>() {
            public int compare(DataSource d1,DataSource d2) {
                String s1 = d1.getNiceFileName(shortNamesEnabled, inputPath);
                String s2 = d2.getNiceFileName(shortNamesEnabled, inputPath);
                return s1.compareTo(s2);
Report call()
t instanceof Error
pmd/src/net/sourceforge/pmd/PMD.java
throw (Error) t;
else if (t instanceof Error)
Writer writer
pmd/src/net/sourceforge/pmd/renderers/AbstractRenderer.java
this.writer = writer;
void setWriter(Writer writer)
pmd/src/net/sourceforge/pmd/renderers/AbstractRenderer.java
return writer;
Writer getWriter()
pmd/src/net/sourceforge/pmd/PMD.java
ctx.getReport().addError(
                ctx.getReport().addError(
                ctx.getReport().addError(
            context.setReport(new Report());
    public static void processFiles(int threadCount, RuleSetFactory ruleSetFactory, SourceType sourceType, List<DataSource> files, RuleContext ctx, String rulesets,
            boolean debugEnabled, boolean shortNamesEnabled, String inputPath,
            Runnable r = new PmdRunnable(executor, dataSource, niceFileName, sourceType, debugEnabled,
            executor.execute(r);
        try {
            executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
void run()