Bug 29078 Completion for anonymous inner class results in syntax error
1) enable smart brackets 2) type in Runnable runnable= new Runnable(<code assist>) ->you get the code below with one superflus parenthesis: Runnable runnable= new Runnable() { public void run() { } })
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/JavaTypeCompletionProposal.java
* To be o
	 */
	protected String updateReplacementString(IDocument document, char trigger, int offset, ImportsStructure impStructure) throws CoreException, BadLocationException {
		if (impStructure != null) {
			IType[] types= impStructure.getCompilationUnit().getTypes();
			if (types.length > 0 && types[0].getSourceRange().getOffset() <= offset) {
				
				return impStructure.addImport(getReplacementString());
			}
		}
		return null;
	}
	
	
	/* (non-Javadoc)
	 * @see ICompletionProposalExtension#apply(IDocument, char, int)
	 */
	public void apply(IDocument document, char trigger, int offset) {
		try {
			ImportsStructure impStructure= null;
			
			if (fCompilationUnit != null) {
				IPreferenceStore store= PreferenceConstants.getPreferenceStore();
				String[] prefOrder= JavaPreferencesSettings.getImportOrderPreference(store);
				int threshold= JavaPreferencesSettings.getImportNumberThreshold(store);					
				impStructure= new ImportsStructure(fCompilationUnit, prefOrder, threshold, true);
			}
			
			String replacementString= updateReplacementString(document, trigger, offset, impStructure);
			if (replacementString != null) {