In some cases, the algorithm decides incorrectly when to which package names to abbreviate. For example, abbreviating
org.apache.commons.lang3.ClassUtils to the length 18 will result o.a.c.lang3.ClassUtils (22 characters) instead of o.a.c.l.ClassUtils (18 characters as requested). The reason for this is that the algorithm starts from the right and goes to the left abbreviating the packages and starts to abbreviate the packages when it runs out of the available space.
Instead, the algorithm should start from the left and abbreviate all packages that would result in a too-long string without abbreviating the package name.