-
Bug
-
Resolution: Unresolved
-
P3
-
7, 8, 9
-
generic
-
generic
FULL PRODUCT VERSION :
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 10.0.14393]
(Also seen on OSX)
A DESCRIPTION OF THE PROBLEM :
The compile time grows exponentially when implementing additional interfaces.
The attached sample has 15 interfaces and took 180 seconds to compile
It took only 15 seconds when there were 13 interfaces.
It takes several hours if adding a few more.
REGRESSION. Last worked in version 6u45
ADDITIONAL REGRESSION INFORMATION:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Compile the attached code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Compile time not increasing exponentially
ACTUAL -
Compile time increasing exponentially
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package com.example;
interface I_1 {
public void method_1();
}
interface I_2 extends I_1 {
public void method_1();
}
interface I_3 extends I_2, I_1 {
public void method_1();
}
interface I_4 extends I_3, I_2, I_1 {
public void method_1();
}
interface I_5 extends I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_6 extends I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_7 extends I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_8 extends I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_9 extends I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_10 extends I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_11 extends I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_12 extends I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_13 extends I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_14 extends I_13, I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_15 extends I_14, I_13, I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
public class Test implements I_15, I_14, I_13, I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1(){}
}
---------- END SOURCE ----------
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 10.0.14393]
(Also seen on OSX)
A DESCRIPTION OF THE PROBLEM :
The compile time grows exponentially when implementing additional interfaces.
The attached sample has 15 interfaces and took 180 seconds to compile
It took only 15 seconds when there were 13 interfaces.
It takes several hours if adding a few more.
REGRESSION. Last worked in version 6u45
ADDITIONAL REGRESSION INFORMATION:
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Compile the attached code
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Compile time not increasing exponentially
ACTUAL -
Compile time increasing exponentially
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package com.example;
interface I_1 {
public void method_1();
}
interface I_2 extends I_1 {
public void method_1();
}
interface I_3 extends I_2, I_1 {
public void method_1();
}
interface I_4 extends I_3, I_2, I_1 {
public void method_1();
}
interface I_5 extends I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_6 extends I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_7 extends I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_8 extends I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_9 extends I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_10 extends I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_11 extends I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_12 extends I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_13 extends I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_14 extends I_13, I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
interface I_15 extends I_14, I_13, I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1();
}
public class Test implements I_15, I_14, I_13, I_12, I_11, I_10, I_9, I_8, I_7, I_6, I_5, I_4, I_3, I_2, I_1 {
public void method_1(){}
}
---------- END SOURCE ----------
- duplicates
-
JDK-8164728 Performance of override clash checks degenerates in some cases
- Closed
- relates to
-
JDK-8164728 Performance of override clash checks degenerates in some cases
- Closed