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 190629 Details for
Bug 338649
[perfs] Regression on FullSourceWorkspaceModelTests#testInitJDTPlugin
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed patch
patch.txt (text/plain), 5.53 KB, created by
Satyam Kandula
on 2011-03-08 03:36:11 EST
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
Satyam Kandula
Created:
2011-03-08 03:36:11 EST
Size:
5.53 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/internal/core/JavaProject.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java,v >retrieving revision 1.444 >diff -u -r1.444 JavaProject.java >--- model/org/eclipse/jdt/internal/core/JavaProject.java 24 Feb 2011 16:51:58 -0000 1.444 >+++ model/org/eclipse/jdt/internal/core/JavaProject.java 8 Mar 2011 08:29:51 -0000 >@@ -2579,6 +2579,7 @@ > JavaModelManager manager = JavaModelManager.getJavaModelManager(); > ExternalFoldersManager externalFoldersManager = JavaModelManager.getExternalManager(); > ResolvedClasspath result = new ResolvedClasspath(); >+ Map knownDrives = new HashMap(); > > Map referencedEntriesMap = new HashMap(); > List rawLibrariesPath = new ArrayList(); >@@ -2639,11 +2640,11 @@ > if (!rawLibrariesPath.contains(extraEntries[j].getPath())) { > // https://bugs.eclipse.org/bugs/show_bug.cgi?id=305037 > // referenced entries for variable entries could also be persisted with extra attributes, so addAsChainedEntry = true >- addToResult(rawEntry, extraEntries[j], result, resolvedEntries, externalFoldersManager, referencedEntriesMap, true); >+ addToResult(rawEntry, extraEntries[j], result, resolvedEntries, externalFoldersManager, referencedEntriesMap, true, knownDrives); > } > } > } >- addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false); >+ addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false, knownDrives); > } > break; > >@@ -2686,12 +2687,12 @@ > ClasspathEntry[] extraEntries = cEntry.resolvedChainedLibraries(); > for (int k = 0, length2 = extraEntries.length; k < length2; k++) { > if (!rawLibrariesPath.contains(extraEntries[k].getPath())) { >- addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false); >+ addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false, knownDrives); > } > } > } > } >- addToResult(rawEntry, cEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false); >+ addToResult(rawEntry, cEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false, knownDrives); > } > break; > >@@ -2704,15 +2705,15 @@ > ClasspathEntry[] extraEntries = ((ClasspathEntry) resolvedEntry).resolvedChainedLibraries(); > for (int k = 0, length2 = extraEntries.length; k < length2; k++) { > if (!rawLibrariesPath.contains(extraEntries[k].getPath())) { >- addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager, referencedEntriesMap, true); >+ addToResult(rawEntry, extraEntries[k], result, resolvedEntries, externalFoldersManager, referencedEntriesMap, true, knownDrives); > } > } > } > >- addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false); >+ addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false, knownDrives); > break; > default : >- addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false); >+ addToResult(rawEntry, resolvedEntry, result, resolvedEntries, externalFoldersManager, referencedEntriesMap, false, knownDrives); > break; > } > } >@@ -2723,7 +2724,7 @@ > > private void addToResult(IClasspathEntry rawEntry, IClasspathEntry resolvedEntry, ResolvedClasspath result, > LinkedHashSet resolvedEntries, ExternalFoldersManager externalFoldersManager, >- Map oldChainedEntriesMap, boolean addAsChainedEntry) { >+ Map oldChainedEntriesMap, boolean addAsChainedEntry, Map knownDrives) { > > IPath resolvedPath; > // If it's already been resolved, do not add to resolvedEntries >@@ -2747,7 +2748,7 @@ > // https://bugs.eclipse.org/bugs/show_bug.cgi?id=336046 > // The source attachment path could be external too and in which case, must be added. > IPath sourcePath = resolvedEntry.getSourceAttachmentPath(); >- if (sourcePath != null && ExternalFoldersManager.isExternalFolderPath(sourcePath)) { >+ if (sourcePath != null && driveExists(sourcePath, knownDrives) && ExternalFoldersManager.isExternalFolderPath(sourcePath)) { > externalFoldersManager.addFolder(sourcePath, true); > } > } >@@ -2768,6 +2769,26 @@ > } > > /* >+ * File#exists() takes lot of time for an unmapped drive. Hence, cache the info. >+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=338649 >+ */ >+ private boolean driveExists(IPath sourcePath, Map knownDrives) { >+ String drive = sourcePath.getDevice(); >+ if (drive == null) return true; >+ Boolean good = (Boolean)knownDrives.get(drive); >+ if (good == null) { >+ if (new File(drive).exists()) { >+ knownDrives.put(drive, Boolean.TRUE); >+ return true; >+ } else { >+ knownDrives.put(drive, Boolean.FALSE); >+ return false; >+ } >+ } >+ return good.booleanValue(); >+ } >+ >+ /* > * Resolve the given perProjectInfo's raw classpath and store the resolved classpath in the perProjectInfo. > */ > public void resolveClasspath(PerProjectInfo perProjectInfo, boolean usePreviousSession, boolean addClasspathChange) throws JavaModelException {
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
Flags:
satyam.kandula
:
review?
Actions:
View
|
Diff
Attachments on
bug 338649
: 190629