|
Lines 101-106
Link Here
|
| 101 |
import java.util.HashMap; |
101 |
import java.util.HashMap; |
| 102 |
import java.util.HashSet; |
102 |
import java.util.HashSet; |
| 103 |
import java.util.Hashtable; |
103 |
import java.util.Hashtable; |
|
|
104 |
import java.util.Iterator; |
| 104 |
import java.util.Map; |
105 |
import java.util.Map; |
| 105 |
|
106 |
|
| 106 |
import org.eclipse.core.runtime.CoreException; |
107 |
import org.eclipse.core.runtime.CoreException; |
|
Lines 116-121
Link Here
|
| 116 |
import org.eclipse.core.runtime.QualifiedName; |
117 |
import org.eclipse.core.runtime.QualifiedName; |
| 117 |
import org.eclipse.core.runtime.SubProgressMonitor; |
118 |
import org.eclipse.core.runtime.SubProgressMonitor; |
| 118 |
import org.eclipse.core.runtime.jobs.ISchedulingRule; |
119 |
import org.eclipse.core.runtime.jobs.ISchedulingRule; |
|
|
120 |
import org.eclipse.core.runtime.jobs.Job; |
| 119 |
|
121 |
|
| 120 |
import org.eclipse.core.resources.IContainer; |
122 |
import org.eclipse.core.resources.IContainer; |
| 121 |
import org.eclipse.core.resources.IFile; |
123 |
import org.eclipse.core.resources.IFile; |
|
Lines 3888-3893
Link Here
|
| 3888 |
monitor.subTask(Messages.javamodel_resetting_source_attachment_properties); |
3890 |
monitor.subTask(Messages.javamodel_resetting_source_attachment_properties); |
| 3889 |
final IJavaProject[] projects = manager.getJavaModel().getJavaProjects(); |
3891 |
final IJavaProject[] projects = manager.getJavaModel().getJavaProjects(); |
| 3890 |
HashSet visitedPaths = new HashSet(); |
3892 |
HashSet visitedPaths = new HashSet(); |
|
|
3893 |
HashSet externalPaths = new HashSet(); |
| 3891 |
ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager(); |
3894 |
ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager(); |
| 3892 |
for (int i = 0, length = projects.length; i < length; i++) { |
3895 |
for (int i = 0, length = projects.length; i < length; i++) { |
| 3893 |
JavaProject javaProject = (JavaProject) projects[i]; |
3896 |
JavaProject javaProject = (JavaProject) projects[i]; |
|
Lines 3911-3929
Link Here
|
| 3911 |
if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) { |
3914 |
if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) { |
| 3912 |
IPath entryPath = entry.getPath(); |
3915 |
IPath entryPath = entry.getPath(); |
| 3913 |
if (ExternalFoldersManager.isExternalFolderPath(entryPath) && externalFoldersManager.getFolder(entryPath) == null) { |
3916 |
if (ExternalFoldersManager.isExternalFolderPath(entryPath) && externalFoldersManager.getFolder(entryPath) == null) { |
| 3914 |
externalFoldersManager.addFolder(entryPath, true); |
3917 |
externalPaths.add(entryPath); |
| 3915 |
} |
3918 |
} |
| 3916 |
} |
3919 |
} |
| 3917 |
} |
3920 |
} |
| 3918 |
} |
3921 |
} |
| 3919 |
} |
3922 |
} |
|
|
3923 |
|
| 3924 |
ISchedulingRule rule = null; |
| 3920 |
try { |
3925 |
try { |
|
|
3926 |
// Use a schedule rule to avoid a race condition (https://bugs.eclipse.org/bugs/show_bug.cgi?id=369251) |
| 3927 |
rule = ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(externalFoldersManager.getExternalFoldersProject()); |
| 3928 |
Job.getJobManager().beginRule(rule, monitor); |
| 3929 |
|
| 3930 |
Iterator externalPathIter = externalPaths.iterator(); |
| 3931 |
while (externalPathIter.hasNext()) { |
| 3932 |
externalFoldersManager.addFolder((IPath) externalPathIter.next(), true); |
| 3933 |
} |
| 3921 |
externalFoldersManager.createPendingFolders(monitor); |
3934 |
externalFoldersManager.createPendingFolders(monitor); |
| 3922 |
} |
3935 |
|
| 3923 |
catch(JavaModelException jme) { |
3936 |
} catch (JavaModelException jme) { |
| 3924 |
// Creation of external folder project failed. Log it and continue; |
3937 |
// Creation of external folder project failed. Log it and continue; |
| 3925 |
Util.log(jme, "Error while processing external folders"); //$NON-NLS-1$ |
3938 |
Util.log(jme, "Error while processing external folders"); //$NON-NLS-1$ |
|
|
3939 |
} finally { |
| 3940 |
Job.getJobManager().endRule(rule); |
| 3926 |
} |
3941 |
} |
|
|
3942 |
|
| 3927 |
// initialize delta state |
3943 |
// initialize delta state |
| 3928 |
if (monitor != null) |
3944 |
if (monitor != null) |
| 3929 |
monitor.subTask(Messages.javamodel_initializing_delta_state); |
3945 |
monitor.subTask(Messages.javamodel_initializing_delta_state); |