Bug 14386 Wrong Javadoc insertion in Editor
Testet with: Eclipse 2.0 (pre-release) Build 20020416 I played with the "Add Javadoc comment" feature and found the following bug. Using this source as the correct starting point: ----------------- test code: package test; /** * @author MH * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. */ public class HelloWorld { /** * Method main. * @param args */ public static void main(String[] args) { System.out.println("args = " + args); System.out.println("line 2 ..."); } } /** * @author MH * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. */ class SecondClass { public SecondClass { }//constructor private void doIt() { //bla } }//SecondClass ----------------------------- i double click the method "doIt()" in the tree browser on the right hand site. the result is: --------------------------- package test; /** * @author MH * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. */ public class HelloWorld { /** * Method main. * @param args */ public static void main(String[] args) { System.out.println("args = " + args); System.out.println("line 2 ..."); } } /** * @author MH * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. */ class SecondClass { public SecondClass { /** * Method doIt. */ }//constructor private void doIt() { //bla } }//SecondClass ------------------------------- => the javadoc comment is inserted within the body of the constructor of the class "SecondClass" - one line above.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/actions/AddJavaDocStubAction.java
return;
		 		}
			}
			run(new IMember[] { (IMember)element });
		} catch (CoreException e) {
			ExceptionHandler.handle(e, getShell(), getDialogTitle(), ActionMessages.getString("AddJavaDocStubsAction.error.actionFailed")); 
		}
	}
	
	
	private void run(IMember[] members) {
		try {
			CodeGenerationSettings settings= JavaPreferencesSettings.getCodeGenerationSettings();
			AddJavaDocStubOperation op= new AddJavaDocStubOperation(members, settings);
			ProgressMonitorDialog dialog= new ProgressMonitorDialog(getShell());
			dialog.run(false, true, new WorkbenchRunnableAdapter(op));					
		} catch (InvocationTargetException e) {
			ExceptionHandler.handle(e, getShell(), getDialogTitle(), ActionMessages.getString("AddJavaDocStubsAction.error.actionFailed")); 
		} catch (InterruptedException e) {
			
		}
	}
	
	private void showError(String message) {
		MessageDialog.openError(getShell(), getDialogTitle(), message);
	}
	
	private IMember[] getSelectedMembers(IStructuredSelection selection) {
		List elements= selection.toList();
		int nElements= elements.size();