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 65007 Details for
Bug 144776
JavaProject.resetCaches() needs to reset dependent projects
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Proposed fix and regression test
144776.txt (text/plain), 4.68 KB, created by
Jerome Lanneluc
on 2007-04-26 07:23:17 EDT
(
hide
)
Description:
Proposed fix and regression test
Filename:
MIME Type:
Creator:
Jerome Lanneluc
Created:
2007-04-26 07:23:17 EDT
Size:
4.68 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/internal/core/JavaModelOperation.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelOperation.java,v >retrieving revision 1.66 >diff -u -r1.66 JavaModelOperation.java >--- model/org/eclipse/jdt/internal/core/JavaModelOperation.java 3 Apr 2007 09:33:48 -0000 1.66 >+++ model/org/eclipse/jdt/internal/core/JavaModelOperation.java 26 Apr 2007 11:24:06 -0000 >@@ -745,10 +745,11 @@ > switch (element.getElementType()) { > case IJavaElement.PACKAGE_FRAGMENT_ROOT: > case IJavaElement.PACKAGE_FRAGMENT: >- ((JavaProject) element.getJavaProject()).resetCaches(); >+ deltaProcessor.projectCachesToReset.add(element.getJavaProject()); > break; > } > } >+ deltaProcessor.resetProjectCaches(); > > // fire only iff: > // - the operation is a top level operation >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.298 >diff -u -r1.298 DeltaProcessor.java >--- model/org/eclipse/jdt/internal/core/DeltaProcessor.java 3 Apr 2007 09:33:49 -0000 1.298 >+++ model/org/eclipse/jdt/internal/core/DeltaProcessor.java 26 Apr 2007 11:24:06 -0000 >@@ -232,7 +232,7 @@ > private final ModelUpdater modelUpdater = new ModelUpdater(); > > /* A set of IJavaProject whose caches need to be reset */ >- private HashSet projectCachesToReset = new HashSet(); >+ public HashSet projectCachesToReset = new HashSet(); > > /* > * A list of IJavaElement used as a scope for external archives refresh during POST_CHANGE. >@@ -1778,7 +1778,7 @@ > * Traverse the set of projects which have changed namespace, and reset their > * caches and their dependents > */ >- private void resetProjectCaches() { >+ public void resetProjectCaches() { > if (this.projectCachesToReset.size() == 0) > return; > >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/model/NameLookupTests2.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/NameLookupTests2.java,v >retrieving revision 1.22 >diff -u -r1.22 NameLookupTests2.java >--- src/org/eclipse/jdt/core/tests/model/NameLookupTests2.java 29 Mar 2006 04:03:07 -0000 1.22 >+++ src/org/eclipse/jdt/core/tests/model/NameLookupTests2.java 26 Apr 2007 11:24:07 -0000 >@@ -12,7 +12,9 @@ > > import java.io.IOException; > >+import org.eclipse.core.resources.IWorkspaceRunnable; > import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.Path; > import org.eclipse.jdt.core.*; > import org.eclipse.jdt.internal.core.JavaProject; >@@ -44,7 +46,7 @@ > return buildModelTestSuite(NameLookupTests2.class); > } > >-private NameLookup getNameLookup(JavaProject project) throws JavaModelException { >+NameLookup getNameLookup(JavaProject project) throws JavaModelException { > return project.newNameLookup((WorkingCopyOwner)null); > } > public void testAddPackageFragmentRootAndPackageFrament() throws CoreException { >@@ -194,6 +196,34 @@ > } > } > /* >+ * Creates a package fragment and finds it in a dependent project in a batch operation >+ * (regression test for bug 144776 JavaProject.resetCaches() needs to reset dependent projects >+ */ >+public void testNameLookupFindPackageFragmentAfterCreation() throws CoreException { >+ try { >+ final IJavaProject p1 = createJavaProject("P1"); >+ final JavaProject p2 = (JavaProject) createJavaProject("P2", new String[] {""}, new String[0], new String[] {"/P1"}, ""); >+ >+ // populate namelookup for p2 >+ getNameLookup(p2); >+ >+ IWorkspaceRunnable runnable = new IWorkspaceRunnable(){ >+ public void run(IProgressMonitor monitor) throws CoreException { >+ p1.getPackageFragmentRoot(p1.getProject()).createPackageFragment("pkg", false/*don't force*/, monitor); >+ IPackageFragment[] pkgs = getNameLookup(p2).findPackageFragments("pkg", false/*exact match*/); >+ assertElementsEqual( >+ "Unexpected package fragments", >+ "pkg [in <project root> [in P1]]", >+ pkgs); >+ } >+ }; >+ JavaCore.run(runnable, null/*no progress*/); >+ } finally { >+ deleteProject("P1"); >+ deleteProject("P2"); >+ } >+} >+/* > * Ensure that finding a package fragment with a working copy opened returns one element only > * (regression test for bug 89624 Open on selection proposes twice the same entry) > */
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 144776
: 65007