--- /dev/null
+import java.io.*;
+
+aspect MyAspect {
+ before(): execution(* MyOtherClass.read()) { }
+}
+
+
+class MyClass<T,E> implements MyInterface<T> {
+
+ public static void main(String[] arg) { }
+
+ public T read() throws IOException {
+ return null;
+ }
+
+ public void exceptionDetected(E e) { }
+}
+
+
+interface MyInterface<T> {
+ public T read() throws IOException;
+}
+
+class MyOtherClass {
+ public void read() { }
+}
+
+public class pr121575 {
+ public static void main(String []argv) {
+ MyClass.main(null);
+ }
+}
\ No newline at end of file
--- /dev/null
+import java.lang.annotation.*;
+import java.io.*;
+
+aspect MyAspect {
+ before(): execution(* read(..)) { }
+}
+
+
+class MyClass<T extends String,E extends Number> implements MyInterface<T> {
+
+ public static void main(String[] arg) { }
+
+ public void read(T t) throws IOException {
+ }
+
+ public void exceptionDetected(E e) { }
+}
+
+
+interface MyInterface<T> {
+ public void read(T t) throws IOException;
+}
+
--- /dev/null
+import java.lang.annotation.*;
+import java.io.*;
+
+aspect MyAspect {
+ before(): execution(* read(..)) { }
+}
+
+
+class MyClass<T extends String,E extends Number> implements MyInterface<E> {
+
+ public static void main(String[] arg) { }
+
+ public void read(E e) throws IOException {
+ }
+
+ public void exceptionDetected(E e) { }
+}
+
+
+interface MyInterface<T> {
+ public void read(T t) throws IOException;
+}
+
--- /dev/null
+import java.lang.annotation.*;
+import java.io.*;
+
+aspect MyAspect {
+ before(): execution(* read(..)) { }
+}
+
+
+class MyClass<T extends String,E extends Number> implements MyInterface<T> {
+
+ public static void main(String[] arg) { }
+
+ public void read(E e) throws IOException {
+ }
+
+ public void exceptionDetected(E e) { }
+}
+
+
+interface MyInterface<T> {
+ public void read(T t) throws IOException;
+}
+