diff -r 9c577131ffa6 -r 7c925f35f81c src/share/classes/com/sun/tools/javac/code/Types.java --- a/src/share/classes/com/sun/tools/javac/code/Types.java Wed May 14 15:41:28 2014 -0600 +++ b/src/share/classes/com/sun/tools/javac/code/Types.java Fri May 23 16:27:22 2014 +0100 @@ -3972,8 +3972,13 @@ Si.lower = Ti.getSuperBound(); break; } - if (Si.bound == Si.lower) + Type tmpBound = Si.bound.hasTag(UNDETVAR) ? ((UndetVar)Si.bound).qtype : Si.bound; + Type tmpLower = Si.lower.hasTag(UNDETVAR) ? ((UndetVar)Si.lower).qtype : Si.lower; + if (!Si.bound.hasTag(ERROR) && + !Si.lower.hasTag(ERROR) && + isSameType(tmpBound, tmpLower, false)) { currentS.head = Si.bound; + } } currentA = currentA.tail; currentT = currentT.tail;