Bug 161044 [Import/Export] Error: Destination directory conflicts with location of workspace root
Steps to reproduce: 1)Create a new simple project called Proj1 2)Create a new simple project called Proj2 3)Create a new file called testFile in Proj1 4)Try to export the testFile as a zip file and put that zip file inside C:\<yourWorkspace>\Proj2 You get error "Destination directory conflicts with location of workspace root" The code causing this is in UI. The class is called org.eclipse.ui.internal.wizards.datatransfer.WizardFileSystemResourceExportPage1and the method is #validateDestinationGroup. - Why is this considered an error? Products built upon Eclipse allow you to export to a directory in the workspace so obviously this is not a rule but more of a policy used by Eclipse export wizard. This introduces inconsistent behaviour with downstream products. - Can the export be made less restrictive? For example, permit the above example but prevent exports that would damage or corrupt the workspace.
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/WizardDataTransferPage.java
protected Label createPlainLabel(Composite parent, String text) {
        Label label = new Label(parent, SWT.NONE);
        label.setText(text);
        label.setFont(parent.getFont());
        GridData data = new GridData();
        data.verticalAlignment = GridData.FILL;
        data.horizontalAlignment = GridData.FILL;
        label.setLayoutData(data);
        return label;
    }
    /**
     * Creates a horizontal spacer line that fills the width of its container.
     *
     * @param parent the parent control
     */
    protected void createSpacer(Composite parent) {
        Label spacer = new Label(parent, SWT.NONE);
        GridData data = new GridData();
        data.horizontalAlignment = GridData.FILL;
        data.verticalAlignment = GridData.BEGINNING;
        spacer.setLayoutData(data);
    }
    /**
     * Returns whether this page is complete. This determination is made based upon
     * the current contents of this page's controls.  Subclasses wishing to include
     * their controls in this determination should override the hook methods 
     * <code>validateSourceGroup</code> and/or <code>validateOptionsGroup</code>.
     *
     * @return <code>true</code> if this page is complete, and <code>false</code> if
     *   incomplete