commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitry Katsubo (JIRA)" <j...@apache.org>
Subject [jira] [Created] (LANG-846) StringUtils.equals() / CharSequenceUtils.regionMatches() assumes that CharSequence.toString() implementation is effective
Date Wed, 24 Oct 2012 15:28:11 GMT
Dmitry Katsubo created LANG-846:
-----------------------------------

             Summary: StringUtils.equals() / CharSequenceUtils.regionMatches() assumes that
CharSequence.toString() implementation is effective
                 Key: LANG-846
                 URL: https://issues.apache.org/jira/browse/LANG-846
             Project: Commons Lang
          Issue Type: Improvement
          Components: lang.*
    Affects Versions: 3.1
            Reporter: Dmitry Katsubo
            Priority: Minor


In my case I have {{CharSequence}} that implements a "lazy" string which is stored on disk,
and although {{toString()}} implementation is valid, it is very expensive plus can potentially
cause OOM.

Thus {{CharSequenceUtils.regionMatches()}} should really do char-by-char comparison, leaving
the optimization to underlying {{CharSequence}} implementation.

Maybe {{CharSequenceUtils.regionMatches()}} could check that passed {{CharSequence}} is standard
implementation (like {{StringBuilder}}, {{StringBuffer}}) that has "effective" {{toString()}}
implementation, but this implementation ends up with creating new {{String}} object and thus
duplicating the character buffer. So we have classical speed/memory trade-off.

P.S. [Line 192 of CharSequenceUtils()|http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/CharSequenceUtils.java?revision=1199894&view=markup#l192]
reads

{{TODO: Implement rather than convert to String}}



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message