Loading... (original) (raw)

FULL PRODUCT VERSION :
Linux tigger 3.13.0-63-generic #103-Ubuntu SMP Fri Aug 14 21:42:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

ADDITIONAL OS VERSION INFORMATION :
Linux tigger 3.13.0-63-generic #103-Ubuntu SMP Fri Aug 14 21:42:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

A DESCRIPTION OF THE PROBLEM :
Synopsis says it. Anything that implements CharSequence should be a Comparable, for example StringBuilder and StringBuffer. It's not the designer's responsibility to dictate how a class should be used. It's the designer's responsibility to provide functionality as general as possible and a CharSequence is Comparable in general.

REGRESSION. Last worked in version 8u60

ADDITIONAL REGRESSION INFORMATION:
True in every release.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create CharSequenceBug.java and compile using the code provided below.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Compiling CharSequenceBug.java should compile successfully.
ACTUAL -
Compiling CharSequenceBug.java fails to compile.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
Resulting compile returns:

CharSequenceBug.java:8: error: cannot find symbol
System.err.println(sba.compareTo(sbb));
^
symbol: method compareTo(StringBuilder)
location: variable sba of type StringBuilder
1 error

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------

public class CharSequenceBug {

public static void main(String[] args) {
StringBuilder sba = new StringBuilder().append("a");
StringBuilder sbb = new StringBuilder().append("b");
System.err.println(sba.toString().compareTo(sbb.toString()));
System.err.println(sba.compareTo(sbb));
}

}

---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
Convert to String. Severity? Simple conversion allows progress, but I need to use the StringBuilder and/or StringBuffer instead.