Bug 70046 No progress when copying project
Build: 3.0 final 1) Create a large project (I imported org.eclipse.jdt.ui as a source plugin) 2) In the Navigator view, select the project, and pick "Copy" 3) Right click again and select paste -> The copy operation occurs, but there is never any progress message, and the progress bar is stuck at 50% for the entire duration. Looking at CopyProjectOperation.performCopyOperation. It does the following: 1) beginTask on the monitor with 100 units of work 2) Create the project description 3) Report 50 units of progress 4) Call IProject.copy, passing in the 50% complete monitor 5) Report another 50 units of progress Problems: - Realistically creating the description represents a negligible amount of work, and shouldn't account for any progress, let alone 50%. - You should never pass a half used monitor to an API call. It should instead pass a new SubProgressMonitor
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/CopyProjectOperation.java
}
        };
        try {
            new ProgressMonitorJobsDialog(parentShell).run(true, true, op);
        } catch (InterruptedException e) {
            return false;
        } catch (InvocationTargetException e) {
            final String message = e.getTargetException().getMessage();
            parentShell.getDisplay().syncExec(new Runnable() {
                public void run() {
                    MessageDialog.openError(parentShell, IDEWorkbenchMessages
                            .getString("CopyProjectOperation.copyFailedTitle"), 
                            IDEWorkbenchMessages.format(
                                    "CopyProjectOperation.internalError", 
                                    new Object[] { message }));
                }
            });
            return false;
        }
        return true;
    }
    /**
     * Create a new IProjectDescription for the copy using the auto-generated
     * name and path.
     * 
     * @return IProjectDescription
     * @param project the source project
     * @param projectName the name for the new project
     * @param rootLocation the path the new project will be stored under.
     */