--- /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;
+ }
+ }
+
+}