1.1 --- a/src/share/classes/com/sun/tools/javac/code/Symbol.java Mon Jan 21 20:15:16 2013 +0000 1.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java Mon Jan 21 20:19:53 2013 +0000 1.3 @@ -1233,7 +1233,8 @@ 1.4 case Flags.PRIVATE: 1.5 return false; 1.6 case Flags.PUBLIC: 1.7 - return true; 1.8 + return !this.owner.isInterface() || 1.9 + (flags_field & STATIC) == 0; 1.10 case Flags.PROTECTED: 1.11 return (origin.flags() & INTERFACE) == 0; 1.12 case 0: 1.13 @@ -1247,6 +1248,18 @@ 1.14 } 1.15 } 1.16 1.17 + @Override 1.18 + public boolean isInheritedIn(Symbol clazz, Types types) { 1.19 + switch ((int)(flags_field & Flags.AccessFlags)) { 1.20 + case PUBLIC: 1.21 + return !this.owner.isInterface() || 1.22 + clazz == owner || 1.23 + (flags_field & STATIC) == 0; 1.24 + default: 1.25 + return super.isInheritedIn(clazz, types); 1.26 + } 1.27 + } 1.28 + 1.29 /** The implementation of this (abstract) symbol in class origin; 1.30 * null if none exists. Synthetic methods are not considered 1.31 * as possible implementations.