in xstream/src/java/com/thoughtworks/xstream/converters/extended/StackTraceElementConverter.java [127:165]
public Object fromString(final String str) {
final Matcher matcher = PATTERN.matcher(str);
if (matcher.matches()) {
String classLoaderName = null;
String moduleName = null;
String moduleVersion = null;
if (matcher.group(1) != null) {
if (matcher.group(2) != null) {
classLoaderName = matcher.group(3);
}
if (matcher.group(4) != null) {
moduleName = matcher.group(5).length() == 0 ? null : matcher.group(5);
if (matcher.group(6) != null) {
moduleVersion = matcher.group(7);
}
}
}
final String declaringClass = matcher.group(8);
final String methodName = matcher.group(9);
String fileName = matcher.group(10);
int lineNumber = -1;
if (fileName.equals("Unknown Source")) {
fileName = null;
lineNumber = -1;
} else if (fileName.equals("Native Method")) {
fileName = null;
lineNumber = -2;
} else {
if (matcher.group(11) != null) {
lineNumber = Integer.parseInt(matcher.group(12));
}
}
return FACTORY
.create(classLoaderName, moduleName, moduleVersion, declaringClass, methodName, fileName, lineNumber);
} else {
throw new ConversionException("Could not parse StackTraceElement : " + str);
}
}