[
https://issues.apache.org/jira/browse/LANG-1478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bruno P. Kinoshita updated LANG-1478:
-------------------------------------
Affects Version/s: 3.9
> ClassUtils getAbbreviatedName uses len one character shorter
> ------------------------------------------------------------
>
> Key: LANG-1478
> URL: https://issues.apache.org/jira/browse/LANG-1478
> Project: Commons Lang
> Issue Type: Bug
> Affects Versions: 3.9
> Reporter: Peter Verhas
> Priority: Minor
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> The {{ClassUtils}} method {{getAbbreviatedName}} calculates the required
> lenght one character short. That way
> {code}
> final String ANY_CLASS_FULL_NAME = "....";
> assertEquals("ANY_CLASS_FULL_NAME ",
> ClassUtils.getAbbreviatedName(ANY_CLASS_FULL_NAME , ANY_CLASS_FULL_NAME
> .length()));
> {code}
> will abbreviate the class name, although we are asking exactly the same
> number of characters as they are there. The solution is that
> {code}
> if (availableSpace > 0) {
> {code}
> has to be modified to
> {code}
> if (availableSpace >= 0) {
> {code}
> since the value zero means that we exactly used up the available character
> width.
> This is just a quick fix for this issue, but generally, the algorithm is
> faulty. It runs many times out of the desired length. It actually uses the
> len parameter, not as the desired final length but rather a length for which
> what is out of the range on the left that has to be abbreviated. For that,
> the code could be much simpler. (See LANG-1480.)
--
This message was sent by Atlassian Jira
(v8.3.2#803003)