Bug 23528 quick fix: adds bogus whitespaces on 'add throws declaration'
class A{ void a() throws Exception{ } void f(){ a(); } } qf the call to a() 'add throws declaration' you will get 'void f() throws Exception{' i have to go and fix it every time it used to work :(
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java
changedCU= EditorUtility.getWorkingCopy(changedCU);
						if (changedCU != null) {
							type= (IType) JavaModelUtil.findMemberInCompilationUnit(changedCU, type);
						}
					}
				}
			}
		} else {
			IJavaElement elem= cu.getElementAt(problemPos.getOffset());
			if (elem != null) {
				type= (IType) elem.getAncestor(IJavaElement.TYPE);
			}
		}
				
		if (type != null) {	
			String label;
			if (cu.equals(type.getCompilationUnit())) {
				label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.createmethod.description", methodName); 
			} else {
				label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.createmethod.other.description", new Object[] { methodName, type.getElementName() } ); 
			}
			proposals.add(new NewMethodCompletionProposal(label, invocationNode, cu, type, 1));
		}
	}
	
	public static void getConstructorProposals(ProblemPosition problemPos, ArrayList proposals) throws CoreException {
		ICompilationUnit cu= problemPos.getCompilationUnit();
		
		CompilationUnit astRoot= AST.parseCompilationUnit(cu, true);
		ASTNode selectedNode= ASTResolving.findSelectedNode(astRoot, problemPos.getOffset(), problemPos.getLength());