Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorssankaran2014-02-22 12:20:11 +0000
committerssankaran2014-02-22 12:20:11 +0000
commitca551e9f50d120a7df024c143f37ec7681949c67 (patch)
tree1095f58c0ddd5309601398f07af281e5c6974413
parentc240c1bb7f910acf99b68217e6edcfc018301e65 (diff)
downloadeclipse.jdt.core-ca551e9f50d120a7df024c143f37ec7681949c67.tar.gz
eclipse.jdt.core-ca551e9f50d120a7df024c143f37ec7681949c67.tar.xz
eclipse.jdt.core-ca551e9f50d120a7df024c143f37ec7681949c67.zip
Amended fix for Bug 428247 - [1.8][compiler] Race condition causes
injection of spurious raw types into the type system.
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java
index 48c295f991..5dd0bc079b 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ClassScope.java
@@ -409,9 +409,13 @@ public class ClassScope extends Scope {
SourceTypeBinding sourceType = this.referenceContext.binding;
environment().setAccessRestriction(sourceType, accessRestriction);
- checkAndSetModifiers();
- buildTypeVariables(); // do this before adding the type to avoid race: see https://bugs.eclipse.org/bugs/show_bug.cgi?id=428247
+
+ TypeParameter[] typeParameters = this.referenceContext.typeParameters;
+ sourceType.typeVariables = typeParameters == null || typeParameters.length == 0 ? Binding.NO_TYPE_VARIABLES : null;
sourceType.fPackage.addType(sourceType);
+ checkAndSetModifiers();
+ buildTypeVariables();
+
buildMemberTypes(accessRestriction);
return sourceType;
}

Back to the top