langtools/test/tools/javac/InterfaceMemberClassModifiers.java
changeset 10 06bc494ca11e
child 6150 d055fa8ced62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/InterfaceMemberClassModifiers.java	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,40 @@
+/*
+ * @test  /nodynamiccopyright/
+ * @bug 4294065 4785453
+ * @summary Verify that invalid access modifiers on interface members don't cause crash.
+ * @author maddox
+ *
+ * @compile/fail/ref=InterfaceMemberClassModifiers.out -XDstdout -XDdiags=%b:%l:%_%m InterfaceMemberClassModifiers.java
+ */
+
+public interface InterfaceMemberClassModifiers {
+
+    Object nullWriter = null;
+
+    class SomeClass1 implements InterfaceMemberClassModifiers {                 // OK
+        public Object getOut() {
+            return nullWriter;
+        }
+    }
+
+    public class SomeClass2 implements InterfaceMemberClassModifiers {          // OK
+        public Object getOut() {
+            return nullWriter;
+        }
+    }
+
+    // Compiler used to crash on these!  (after reporting error)
+
+    protected class SomeClass3 implements InterfaceMemberClassModifiers {       // illegal
+        public Object getOut() {
+            return nullWriter;
+        }
+    }
+
+    private class SomeClass4 implements InterfaceMemberClassModifiers {         // illegal
+        public Object getOut() {
+            return nullWriter;
+        }
+    }
+
+}