protected final ArrayList collectCorrections2(ICompilationUnit cu, int nProblems) throws JavaModelException {
protected static final ArrayList collectCorrections2(ICompilationUnit cu, int nProblems) throws JavaModelException {
	protected final ArrayList collectCorrections2(ICompilationUnit cu, int nProblems) throws JavaModelException {				final ArrayList problemsList= new ArrayList();		IProblemRequestor requestor= new IProblemRequestor() {			public void acceptProblem(IProblem problem) {				problemsList.add(problem);			}			public void beginReporting() {				problemsList.clear();			}			public void endReporting() {}			public boolean isActive() {	return true;}		};				ICompilationUnit wc= cu.getWorkingCopy(new WorkingCopyOwner() {}, requestor, null);		try {			wc.reconcile(ICompilationUnit.NO_AST, true, wc.getOwner(), null);		} finally {			wc.discardWorkingCopy();		}				IProblem[] problems= (IProblem[]) problemsList.toArray(new IProblem[problemsList.size()]);		if (problems.length != nProblems) {			StringBuffer buf= new StringBuffer("Wrong number of problems, is: ");			buf.append(problems.length).append(", expected: ").append(nProblems).append('\n');			for (int i= 0; i < problems.length; i++) {				buf.append(problems[i]);				buf.append('[').append(problems[i].getSourceStart()).append(" ,").append(problems[i].getSourceEnd()).append(']');				buf.append('\n');			}			assertTrue(buf.toString(), false);		}		return collectCorrections(cu, problems[0]);	}