test/langtools/tools/javac/InterfaceObjectInheritance.java
changeset 47216 71c04702a3d5
parent 26529 10ec5e52bf75
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/InterfaceObjectInheritance.java	Tue Sep 12 19:03:39 2017 +0200
@@ -0,0 +1,22 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 4526026
+ * @summary javac allows access to interface members inherited protected from Object
+ * @author gafter
+ *
+ * @compile/fail/ref=InterfaceObjectInheritance.out -XDrawDiagnostics  InterfaceObjectInheritance.java
+ */
+
+interface InterfaceObjectInheritance {
+    class Inner {
+        static void bar(InterfaceObjectInheritance i) {
+            try {
+                // An inner class has access to any protected members, but
+                // according to JLS 9.2, an interface has no protected members,
+                // so this reference to finalize should not compile.
+                i.finalize();
+            } catch (Throwable t) {
+            }
+        }
+    }
+}