String (String line) { line = StringUtil.trimStart(line.trim(), "Caused by: "); int classNameStart = 0; int classNameEnd = line.length(); for (int j = 0; j < line.length(); j++) { char c = line.charAt(j); if (c == '.' || c == '$') { classNameStart = j + 1; continue; } if (c == ':') { classNameEnd = j; break; } if (!StringUtil.isJavaIdentifierPart(c)) { return null; } } if (classNameStart >= classNameEnd) return null; String clazz = line.substring(classNameStart, classNameEnd); String abbreviate = abbreviate(clazz); return abbreviate.length() > 1 ? abbreviate : clazz; }