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 67203 Details for
Bug 177922
FlexibleProjectContainer refresh logic sporadically leaves project with "missing library" error on rename/delete
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Possible fix and improved regression test
177922a.txt (text/plain), 3.62 KB, created by
Jerome Lanneluc
on 2007-05-15 05:37:48 EDT
(
hide
)
Description:
Possible fix and improved regression test
Filename:
MIME Type:
Creator:
Jerome Lanneluc
Created:
2007-05-15 05:37:48 EDT
Size:
3.62 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java,v >retrieving revision 1.2 >diff -u -r1.2 ChangeClasspathOperation.java >--- model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java 10 Jul 2006 20:50:44 -0000 1.2 >+++ model/org/eclipse/jdt/internal/core/ChangeClasspathOperation.java 15 May 2007 09:36:54 -0000 >@@ -10,6 +10,7 @@ > *******************************************************************************/ > package org.eclipse.jdt.internal.core; > >+import org.eclipse.core.resources.ResourcesPlugin; > import org.eclipse.core.runtime.jobs.ISchedulingRule; > import org.eclipse.jdt.core.IJavaElement; > import org.eclipse.jdt.core.JavaModelException; >@@ -43,6 +44,11 @@ > DeltaProcessor deltaProcessor = state.getDeltaProcessor(); > ClasspathChange change = (ClasspathChange) deltaProcessor.classpathChanges.get(project.getProject()); > if (this.canChangeResources) { >+ // workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=177922 >+ if (isTopLevelOperation() && !ResourcesPlugin.getWorkspace().isTreeLocked()) { >+ new ClasspathValidation(project).validate(); >+ } >+ > // delta, indexing and classpath markers are going to be created by the delta processor > // while handling the .classpath file change > >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/model/ClasspathTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ClasspathTests.java,v >retrieving revision 1.162 >diff -u -r1.162 ClasspathTests.java >--- src/org/eclipse/jdt/core/tests/model/ClasspathTests.java 9 May 2007 11:31:58 -0000 1.162 >+++ src/org/eclipse/jdt/core/tests/model/ClasspathTests.java 15 May 2007 09:36:56 -0000 >@@ -3715,6 +3715,40 @@ > } > > /* >+ * Ensures that renaming a .jar file and updating the classpath in a PRE_BUILD event doesn't leave markers >+ * (regression test for bug 177922 FlexibleProjectContainer refresh logic sporadically leaves project with "missing library" error on rename/delete) >+ */ >+public void testRenameJar() throws CoreException { >+ IResourceChangeListener listener = null; >+ try { >+ final IJavaProject p = createJavaProject("P", new String[0], new String[] {"/P/lib/test1.jar"}, ""); >+ createFolder("/P/lib"); >+ createFile("/P/lib/test1.jar", ""); >+ // at this point no markers exist >+ >+ // register a listener that updates the classpath in a PRE_BUILD event >+ listener = new IResourceChangeListener(){ >+ public void resourceChanged(IResourceChangeEvent event) { >+ try { >+ p.setRawClasspath(new IClasspathEntry[] {JavaCore.newLibraryEntry(new Path("/P/lib/test2.jar"), null, null)}, null); >+ } catch (JavaModelException e) { >+ e.printStackTrace(); >+ } >+ } >+ }; >+ getWorkspace().addResourceChangeListener(listener, IResourceChangeEvent.PRE_BUILD); >+ >+ // rename .jar >+ getFile("/P/lib/test1.jar").move(new Path("/P/lib/test2.jar"), false, null); >+ assertMarkers("Unexpected markers", "", p); >+ } finally { >+ if (listener != null) >+ getWorkspace().removeResourceChangeListener(listener); >+ deleteProject("P"); >+ } >+} >+ >+/* > * Ensures that unknown classpath attributes in a .classpath file are not lost when read and rewritten. > * (regression test for bug 101425 Classpath persistence should be resilient with unknown attributes) > */
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 177922
:
64116
|
67197
| 67203