Lang 1463: StringUtils abbreviate returns String of length greater than maxWidth (#477)

* fixed LANG-1463 StringUtils abbreviate returns String of length greater than maxWidth

* fixed LANG-1463 StringUtils abbreviate returns String of length greater than maxWidth

* fixed LANG-1463 StringUtils abbreviate returns String of length greater than maxWidth

* formatting fix

* removed magic string
This commit is contained in:
bbeckercscc 2019-11-04 17:56:50 -05:00 committed by Gary Gregory
parent 24e6468683
commit d0b95be281
2 changed files with 12 additions and 3 deletions

View File

@ -294,7 +294,6 @@ public class StringUtils {
public static String abbreviate(final String str, final String abbrevMarker, final int maxWidth) {
return abbreviate(str, abbrevMarker, 0, maxWidth);
}
/**
* <p>Abbreviates a String using a given replacement marker. This will turn
* "Now is the time for all good men" into "...is the time for..." if "..." was defined
@ -333,10 +332,13 @@ public class StringUtils {
* @since 3.6
*/
public static String abbreviate(final String str, final String abbrevMarker, int offset, final int maxWidth) {
if (isEmpty(str) || isEmpty(abbrevMarker)) {
if (isEmpty(str) && isEmpty(abbrevMarker)) {
return str;
} else if (isNotEmpty(str) && EMPTY.equals(abbrevMarker) && maxWidth > 0) {
return str.substring(0, maxWidth);
} else if (isEmpty(str) || isEmpty(abbrevMarker)) {
return str;
}
final int abbrevMarkerLength = abbrevMarker.length();
final int minAbbrevWidth = abbrevMarkerLength + 1;
final int minAbbrevWidthOffset = abbrevMarkerLength + abbrevMarkerLength + 1;

View File

@ -236,6 +236,13 @@ public class StringUtilsTest {
}
//-----------------------------------------------------------------------
//Fixed LANG-1463
@Test
public void testAbbreviateMarkerWithEmptyString() {
String greaterThanMaxTest = "much too long text";
assertEquals("much too long", StringUtils.abbreviate(greaterThanMaxTest, "", 13));
}
@Test
public void testAbbreviate_StringInt() {
assertNull(StringUtils.abbreviate(null, 10));