なんか変

java.lang.Object.run() て。

$ cat Main.java
class Main<T extends Object & Runnable, S extends T>
{
    public void callRun(S x) {  // ここの S を T に変えると正常に動く
        x.run();
    }
    public static void main(String[] args) {
        new Main<MyRunnable, MyRunnable>().callRun(new MyRunnable());
    }
}
class MyRunnable implements Runnable
{
    public void run() {
        System.out.println("OK.");
    }
}
$ javac Main.java 
$ java Main
Exception in thread "main" java.lang.NoSuchMethodError: java.lang.Object.run()V
    at Main.callRun(Main.java:4)
    at Main.main(Main.java:7)

アセンブルするとこんな感じ。

public void callRun(java.lang.Object);
  Code:
   0:   aload_1
   1:   invokevirtual   #2; //Method java/lang/Object.run:()V
   4:   return