Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 164992 Details for
Bug 302295
After associating source folder with rt.jar project refresh takes exceedingly long time.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed Patch
bug_302295.txt (text/plain), 4.96 KB, created by
Jay Arthanareeswaran
on 2010-04-15 13:04:58 EDT
(
hide
)
Description:
Proposed Patch
Filename:
MIME Type:
Creator:
Jay Arthanareeswaran
Created:
2010-04-15 13:04:58 EDT
Size:
4.96 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/internal/core/DeltaProcessor.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/DeltaProcessor.java,v >retrieving revision 1.335 >diff -u -r1.335 DeltaProcessor.java >--- model/org/eclipse/jdt/internal/core/DeltaProcessor.java 23 Apr 2009 15:32:17 -0000 1.335 >+++ model/org/eclipse/jdt/internal/core/DeltaProcessor.java 15 Apr 2010 17:00:09 -0000 >@@ -1886,9 +1886,9 @@ > // notification we see, implies that all projects are about to be refreshed. > projects = ((IWorkspace) o).getRoot().getProjects(IContainer.INCLUDE_HIDDEN); > } >- for (int i = 0; projects != null && i < projects.length; i++) { >- JavaModelManager.getExternalManager().refreshReferences(projects[i], null); >- } >+ //https://bugs.eclipse.org/bugs/show_bug.cgi?id=302295 >+ // Refresh all project references together in a single job >+ JavaModelManager.getExternalManager().refreshReferences(projects, null); > return; > > case IResourceChangeEvent.POST_CHANGE : >Index: model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java,v >retrieving revision 1.16 >diff -u -r1.16 ExternalFoldersManager.java >--- model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java 7 Mar 2009 00:58:57 -0000 1.16 >+++ model/org/eclipse/jdt/internal/core/ExternalFoldersManager.java 15 Apr 2010 17:00:09 -0000 >@@ -258,6 +258,36 @@ > /* > * Refreshes the external folders referenced on the classpath of the given source project > */ >+ public void refreshReferences(final IProject[] sourceProjects, IProgressMonitor monitor) { >+ IProject externalProject = getExternalFoldersProject(); >+ try { >+ HashSet externalFolders = null; >+ for (int index = 0; index < sourceProjects.length; index++) { >+ if (sourceProjects[index].equals(externalProject)) >+ continue; >+ if (!JavaProject.hasJavaNature(sourceProjects[index])) >+ continue; >+ >+ HashSet foldersInProject = getExternalFolders(((JavaProject) JavaCore.create(sourceProjects[index])).getResolvedClasspath()); >+ >+ if (foldersInProject == null || foldersInProject.size() == 0) >+ continue; >+ if (externalFolders == null) >+ externalFolders = new HashSet(); >+ >+ externalFolders.addAll(foldersInProject); >+ } >+ if (externalFolders == null) >+ return; >+ >+ Iterator iterator = externalFolders.iterator(); >+ Job refreshJob = new RefreshJob(iterator); >+ refreshJob.schedule(); >+ } catch (CoreException e) { >+ Util.log(e, "Exception while refreshing external project"); //$NON-NLS-1$ >+ } >+ return; >+ } > public void refreshReferences(IProject source, IProgressMonitor monitor) { > IProject externalProject = getExternalFoldersProject(); > if (source.equals(externalProject)) >@@ -268,25 +298,9 @@ > HashSet externalFolders = getExternalFolders(((JavaProject) JavaCore.create(source)).getResolvedClasspath()); > if (externalFolders == null) > return; >- final Iterator iterator = externalFolders.iterator(); >- Job refreshJob = new Job(Messages.refreshing_external_folders) { >- public boolean belongsTo(Object family) { >- return family == ResourcesPlugin.FAMILY_MANUAL_REFRESH; >- } >- protected IStatus run(IProgressMonitor pm) { >- try { >- while (iterator.hasNext()) { >- IPath externalPath = (IPath) iterator.next(); >- IFolder folder = getFolder(externalPath); >- if (folder != null) >- folder.refreshLocal(IResource.DEPTH_INFINITE, pm); >- } >- } catch (CoreException e) { >- return e.getStatus(); >- } >- return Status.OK_STATUS; >- } >- }; >+ Iterator iterator = externalFolders.iterator(); >+ >+ Job refreshJob = new RefreshJob(iterator); > refreshJob.schedule(); > } catch (CoreException e) { > Util.log(e, "Exception while refreshing external project"); //$NON-NLS-1$ >@@ -298,5 +312,31 @@ > return (IFolder) getFolders().remove(externalFolderPath); > } > >- >+ class RefreshJob extends Job { >+ Iterator externalFolders = null; >+ RefreshJob(Iterator externalFolders){ >+ super(Messages.refreshing_external_folders); >+ this.externalFolders = externalFolders; >+ } >+ >+ public boolean belongsTo(Object family) { >+ return family == ResourcesPlugin.FAMILY_MANUAL_REFRESH; >+ } >+ >+ protected IStatus run(IProgressMonitor pm) { >+ try { >+ while (this.externalFolders.hasNext()) { >+ IPath externalPath = (IPath) this.externalFolders.next(); >+ IFolder folder = getFolder(externalPath); >+ if (folder != null) { >+ folder.refreshLocal(IResource.DEPTH_INFINITE, pm); >+ } >+ } >+ } catch (CoreException e) { >+ return e.getStatus(); >+ } >+ return Status.OK_STATUS; >+ } >+ } >+ > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 302295
:
158605
|
158607
|
164992
|
166028
|
166228
|
166307