Bug 101261 [type hierarchy] overriding a method from context menu > Source is not 5.0 aware
N20050622-0010 There's a hidden feature in the type hierarchy, that allows you to select a type XY and an inherited method, open the context menu and select Source > Override in 'XY'. This action has not been updated for 5.0 and creates a wrong method stub when generics are involved, e.g. here: public class Top<E> { public void method(E e) { } } class XY<ELEMENT> extends Top<ELEMENT> { } It creates (wrong formatting, 'E' instead of 'ELEMENT'): public void method(E e) { // TODO Auto-generated method stub super.method(e); } I'd suggest to drop this action, since the Override/Implement Methods... dialog and content assist do better jobs.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/actions/AddMethodStubAction.java
private IRequestQuery createReplaceQuery() {
		return new IRequestQuery() {
			public int doQuery(IMember method) {
				String methodName= JavaElementLabels.getElementLabel(method, JavaElementLabels.M_PARAMETER_TYPES);
				String formattedMessage= Messages.format(JavaUIMessages.AddMethodStubAction_ReplaceExistingDialog_message, methodName); 
				return showQueryDialog(formattedMessage);	
			}
		};
	}
	
	
	private int showQueryDialog(final String message) {
		
		int[] returnCodes= {IRequestQuery.YES, IRequestQuery.YES_ALL, IRequestQuery.NO, IRequestQuery.CANCEL};
		final Shell shell= JavaPlugin.getActiveWorkbenchShell();
		if (shell == null) {
			JavaPlugin.logErrorMessage("AddMethodStubAction.showQueryDialog: No active shell found"); 
			return IRequestQuery.CANCEL;
		}
		final int[] result= { Window.CANCEL };
		shell.getDisplay().syncExec(new Runnable() {
			public void run() {
				String title= JavaUIMessages.AddMethodStubAction_QueryDialog_title; 
				String[] options= {IDialogConstants.YES_LABEL, IDialogConstants.YES_TO_ALL_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL};
				MessageDialog dialog= new MessageDialog(shell, title, null, message, MessageDialog.QUESTION, options, 0);
				result[0]= dialog.open();				
			}
		});
		int returnVal= result[0];
		return returnVal < 0 ? IRequestQuery.CANCEL : returnCodes[returnVal];