This case gets an error with javac 7 and javac 8 with -source 1.7, but is accepted by javac 8 in normal mode. I wasn't able to find the JLS change that corresponds to this. Any pointers would be appreciated. Thanks, John. class A { <T extends Throwable> A() throws T {} } class B extends A {}