in crashclouseau/java.py [0:0]
def inspect_java_stacktrace(st, node, get_full_path=models.File.get_full_path):
if not st:
return [], set()
lines = map(lambda x: x.strip(), st.split("\n"))
lines = filter(lambda x: x.startswith("at "), lines)
stack = []
files = set()
for n, line in enumerate(lines):
m = JAVA_PAT1.match(line)
d = {
"original": line,
"filename": "",
"module": "",
"changesets": [],
"function": "",
"node": "",
"line": 0,
"internal": False,
"stackpos": n,
}
stack.append(d)
if m:
path, filename, linenumber = m.groups()
if path.startswith("org.mozilla."):
d["internal"] = True
d["node"] = node
d["line"] = int(linenumber)
base_path, d["function"] = parse_path(path)
filename = base_path + "/" + filename
filename = get_full_path(filename)
d["filename"] = filename
files.add(filename)
return stack, files