*** empty log message ***
diff --git a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
index 34ac951..1da68ec 100644
--- a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
+++ b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/messages.properties
@@ -1,7 +1,7 @@
### JavaBatchCompiler messages.
### compiler version id
-compiler.version = 0.275_R2_0_2
+compiler.version = 0.276_R2_0_2
### scanning
scanning.start = Collecting source files inside {0}
diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index 54ebeb9..309144d 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -11,27 +11,11 @@
<h1>
Eclipse Platform Build Notes <br>
Java Development Tooling Core</h1>
-Eclipse SDK 2.0.2 Maintenance Build - ?th September 2002
+Eclipse SDK 2.0.2 Maintenance Build - 13th September 2002
<br>Project org.eclipse.jdt.core v_276_R2_0_2
<h2>
What's new in this drop</h2>
<ul>
-</ul>
-
-<h3>Problem Reports Fixed</h3>
-
-<h3>Problem Reports Closed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21952">21952</a>
-Circular Dependencies Message - Error vs. Warning Message
-
-<h1>
-Eclipse Platform Build Notes <br>
-Java Development Tooling Core</h1>
-Eclipse SDK 2.0.2 Maintenance Build - 12th September 2002
-<br>Project org.eclipse.jdt.core v_275_R2_0_2
-<h2>
-What's new in this drop</h2>
-<ul>
<li>JavaCore option added for the error level (warning or error) of incomplete classpath or projects involved
in a cycle.
<pre>
@@ -51,9 +35,7 @@
</ul>
<h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23357">23357</a>
-Build not triggered on build path change
-<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22203">22203</a>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=22203">22203</a>
More dependencies increase GUI waiting time [build path]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=23318">23318</a>
Resolution of Circular Dep. preference/error message filtering
@@ -63,6 +45,8 @@
VerifyError in char cast of static final char referenced through instance
<h3>Problem Reports Closed</h3>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=21952">21952</a>
+Circular Dependencies Message - Error vs. Warning Message
<h1>
Eclipse Platform Build Notes <br>
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java
index 6956524..2205453 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java
@@ -1504,13 +1504,28 @@
/**
* @see IJavaProject
*/
- public boolean hasClasspathCycle(IClasspathEntry[] entries) {
-
- HashSet cycleParticipants = new HashSet();
- updateCycleParticipants(entries, new ArrayList(), cycleParticipants, getWorkspace().getRoot());
- return !cycleParticipants.isEmpty();
+ public boolean hasClasspathCycle(IClasspathEntry[] preferredClasspath) {
+ HashSet visited = new HashSet();
+ visited.add(getElementName());
+ return hasClasspathCycle(preferredClasspath, visited, ResourcesPlugin.getWorkspace().getRoot());
}
+ private boolean hasClasspathCycle(IClasspathEntry[] preferredClasspath, HashSet visited, IWorkspaceRoot workspaceRoot) {
+ try {
+ IClasspathEntry[] classpath = preferredClasspath == null ? getResolvedClasspath(true) : preferredClasspath;
+ for (int i = 0, length = classpath.length; i < length; i++) {
+ IClasspathEntry entry;
+ if ((entry = classpath[i]).getEntryKind() == IClasspathEntry.CPE_PROJECT){
+ String projectName = entry.getPath().lastSegment();
+ if (!visited.add(projectName)) return true;
+ JavaProject project = (JavaProject)JavaCore.create(workspaceRoot.getProject(projectName));
+ if (project.hasClasspathCycle(null, visited, workspaceRoot)) return true;
+ }
+ }
+ } catch(JavaModelException e){
+ }
+ return false;
+ }
public boolean hasCycleMarker(){
return this.getCycleMarker() != null;
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SetClasspathOperation.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SetClasspathOperation.java
index eb4589d..5a7f8cf 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SetClasspathOperation.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SetClasspathOperation.java
@@ -521,8 +521,7 @@
try {
JavaProject project = getProject();
- if (!project.hasClasspathCycle(project.getResolvedClasspath(true))
- && !project.hasCycleMarker()){
+ if (!project.hasCycleMarker() && !project.hasClasspathCycle(project.getResolvedClasspath(true))){
return;
}