The concern I would have about this is the scenario where it actually is a StringBuffer, especially an empty StringBuffer. The point of the instanceof check and delegation to the contentEquals(StringBuffer) is to maintain synchronization guarantees of StringBuffer. If we call the 'length()' before the instanceof check, those calls will take place outside of a single synchronized block.
I wrote the original implementation of this method, so the validity and correctness of this is definitely up for discussion. I based my decision for the "single synchronization" on the implementation of the String(StringBuffer) and contentEquals(StringBuffer), which provide additional synchronization above that which is inherent to StringBuffer. Personally, I've never assumed that the synchronization of StringBuffer would every be guaranteed beyond method calls to the class itself, but I can understand the rationale for doing this, as you'd want the outcome of the methods to be deterministic regardless of concurrency scenarios. -Nathan > -----Original Message----- > From: Geir Magnusson Jr [mailto:[EMAIL PROTECTED] > > Interesting - couldn't you promote this fix as a minor performance > improvement as well to knock out would would be a pointless instanceof > in the case of ""? > > public boolean contentEquals(CharSequence cs) { > > if (cs == null) { > throw new NPE; > } > > if (cs.length() != count) { > return false; > } > > if (cs.length() == 0 && count == 0) { > return true; // since both are empty strings > } > > if (cs instanceof StringBuffer) { > return contentEquals(...); > } > else { > return regionMatches(...); > } > } > > > Nathan Beyer wrote: > > http://issues.apache.org/jira/browse/HARMONY-719 > > > > > > > > This issue identifies a valid bug in java.lang.String and good patch to > fix > > it. Does anyone have any objections to applying this patch or any > comments? > > > > > > > > -Nathan > > > > > > --------------------------------------------------------------------- > Terms of use : http://incubator.apache.org/harmony/mailing.html > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- Terms of use : http://incubator.apache.org/harmony/mailing.html To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]