/*
* Extract the message and build SourceAnnotation.
*/
final String detail = matcher.group(2);
final String message;
SourceCharactersRange range = null;
final Matcher detailMatcher = DETAIL_PATTERN.matcher(detail);
if (detailMatcher.matches()) {
// split location from string
message = detailMatcher.group(1);
final String location = detailMatcher.group(2);
final String length = detailMatcher.group(3);
range = new SourceCharactersRange(Integer.parseInt(location), Integer.parseInt(length));
} else {
// fall back to using all of detail as message
message = detail;
}