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