1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Wed Oct 09 13:06:49 2013 +0200 1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Wed Oct 09 13:09:31 2013 +0200 1.3 @@ -1993,11 +1993,15 @@ 1.4 (flags & ABSTRACT) == 0 && !name.equals(names.clinit)) { 1.5 if (majorVersion > Target.JDK1_8.majorVersion || 1.6 (majorVersion == Target.JDK1_8.majorVersion && minorVersion >= Target.JDK1_8.minorVersion)) { 1.7 - currentOwner.flags_field |= DEFAULT; 1.8 - flags |= DEFAULT | ABSTRACT; 1.9 + if ((flags & STATIC) == 0) { 1.10 + currentOwner.flags_field |= DEFAULT; 1.11 + flags |= DEFAULT | ABSTRACT; 1.12 + } 1.13 } else { 1.14 //protect against ill-formed classfiles 1.15 - throw new CompletionFailure(currentOwner, "default method found in pre JDK 8 classfile"); 1.16 + throw badClassFile((flags & STATIC) == 0 ? "invalid.default.interface" : "invalid.static.interface", 1.17 + Integer.toString(majorVersion), 1.18 + Integer.toString(minorVersion)); 1.19 } 1.20 } 1.21 if (name == names.init && currentOwner.hasOuterInstance()) {