Skip to content

Commit

Permalink
fix(gui): resolve exceptions during index (#812)
Browse files Browse the repository at this point in the history
  • Loading branch information
skylot committed Dec 23, 2019
1 parent 3b9b103 commit af6f8b5
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
2 changes: 1 addition & 1 deletion jadx-core/src/main/java/jadx/api/JavaClass.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public ClassNode getClassNode() {
return cls;
}

private void loadLists() {
private synchronized void loadLists() {
if (listsLoaded) {
return;
}
Expand Down
18 changes: 13 additions & 5 deletions jadx-gui/src/main/java/jadx/gui/utils/CodeUsageInfo.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import jadx.api.CodePosition;
import jadx.api.JavaClass;
import jadx.api.JavaNode;
Expand All @@ -14,6 +17,7 @@
import jadx.gui.utils.search.StringRef;

public class CodeUsageInfo {
private static final Logger LOG = LoggerFactory.getLogger(CodeUsageInfo.class);

public static class UsageInfo {
private final List<CodeNode> usageList = new ArrayList<>();
Expand All @@ -36,11 +40,15 @@ public CodeUsageInfo(JNodeCache nodeCache) {
private final Map<JNode, UsageInfo> usageMap = new ConcurrentHashMap<>();

public void processClass(JavaClass javaClass, CodeLinesInfo linesInfo, List<StringRef> lines) {
Map<CodePosition, JavaNode> usage = javaClass.getUsageMap();
for (Map.Entry<CodePosition, JavaNode> entry : usage.entrySet()) {
CodePosition codePosition = entry.getKey();
JavaNode javaNode = entry.getValue();
addUsage(nodeCache.makeFrom(javaNode), javaClass, linesInfo, codePosition, lines);
try {
Map<CodePosition, JavaNode> usage = javaClass.getUsageMap();
for (Map.Entry<CodePosition, JavaNode> entry : usage.entrySet()) {
CodePosition codePosition = entry.getKey();
JavaNode javaNode = entry.getValue();
addUsage(nodeCache.makeFrom(javaNode), javaClass, linesInfo, codePosition, lines);
}
} catch (Exception e) {
LOG.error("Code usage process failed for class: {}", javaClass, e);
}
}

Expand Down

0 comments on commit af6f8b5

Please sign in to comment.