Bug 5587 Step Over jumps to caller
Build 20011105 - set breakpoint in org.eclipse.ui.internal.ShowViewAction's constructor, on line indicated by [BP] below (note source has been modified since 20011105): protected ShowViewAction(IWorkbenchWindow window, IViewDescriptor desc) { super(""); String accel = desc.getAccelerator(); String label = desc.getLabel(); [BP] setText(accel == null ? label : label + "@" + accel); setImageDescriptor(desc.getImageDescriptor()); setToolTipText(label); WorkbenchHelp.setHelp(this, new Object[] {IHelpContextIds.SHOW_VIEW_ACTION}); this.window = window; this.desc = desc; } - when breakpoint was hit, I clicked on the Step Over button - it had the same effect as run to return, and stepping back to the caller. - it left me in ShowViewMenu.getAction, on line marked ***: private IAction getAction(String id) { // Keep a cache, rather than creating a new action each time, // so that image caching in ActionContributionItem works. IAction action = (IAction) actions.get(id); if (action == null) { IViewRegistry reg = WorkbenchPlugin.getDefault().getViewRegistry (); IViewDescriptor desc = reg.find(id); if (desc != null) { *** action = new ShowViewAction(getWindow(), desc); actions.put(id, action); } } return action; }
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/JavaDebugPreferencePage.java
* that each fragment is added to the list only once.
	 */
	private SelectionDialog createAllPackagesDialog(Shell shell) throws JavaModelException{
		IWorkspaceRoot wsroot= JavaPlugin.getWorkspace().getRoot();
		IJavaModel model= JavaCore.create(wsroot);
		IJavaProject[] projects= model.getJavaProjects();
		Set packageNameSet= new HashSet(); 
		List packageList = new ArrayList();
		for (int i = 0; i < projects.length; i++) {						
			IPackageFragment[] pkgs= projects[i].getPackageFragments();	
			for (int j = 0; j < pkgs.length; j++) {
				IPackageFragment pkg = pkgs[j];
				if (!pkg.hasChildren() && (pkg.getNonJavaResources().length > 0)) {
					continue;
				}
				if (packageNameSet.add(pkg.getElementName())) {
					packageList.add(pkg);
				}
			}
		}
		int flags= JavaElementLabelProvider.SHOW_DEFAULT;
		ElementListSelectionDialog dialog= new ElementListSelectionDialog(shell, new JavaElementLabelProvider(flags));
		dialog.setIgnoreCase(false);
		dialog.setElements(packageList.toArray()); 
		return dialog;
	}
			
	/**
	 * @see IWorkbenchPreferencePage#init(IWorkbench)
	 */