--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java Thu Oct 09 15:56:20 2008 +0100
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java Thu Oct 09 16:02:29 2008 +0100
@@ -1430,6 +1430,10 @@
long flags = sym.flags();
if (((flags & STATIC) == 0) && owner.type.isParameterized()) {
Type base = asOuterSuper(t, owner);
+ //if t is an intersection type T = CT & I1 & I2 ... & In
+ //its supertypes CT, I1, ... In might contain wildcards
+ //so we need to go through capture conversion
+ base = t.isCompound() ? capture(base) : base;
if (base != null) {
List<Type> ownerParams = owner.type.allparams();
List<Type> baseParams = base.allparams();