From e01ea7010f2563e20d0ae2df1192d805e90ffc7f Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 3 Jul 2022 19:32:41 +0100 Subject: [PATCH] fix: save classes with code generation error into cache (#1568) --- .../src/main/java/jadx/core/dex/nodes/ClassNode.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java index 1b8b53b39..f7fc912de 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/ClassNode.java @@ -21,6 +21,7 @@ import jadx.api.ICodeCache; import jadx.api.ICodeInfo; import jadx.api.ICodeWriter; import jadx.api.JadxArgs; +import jadx.api.impl.SimpleCodeInfo; import jadx.api.plugins.input.data.IClassData; import jadx.api.plugins.input.data.IFieldData; import jadx.api.plugins.input.data.IMethodData; @@ -378,7 +379,13 @@ public class ClassNode extends NotificationAttrNode implements ILoadable, ICodeN return code; } } - ICodeInfo codeInfo = root.getProcessClasses().generateCode(this); + ICodeInfo codeInfo; + try { + codeInfo = root.getProcessClasses().generateCode(this); + } catch (Throwable e) { + addError("Code generation failed", e); + codeInfo = new SimpleCodeInfo(Utils.getStackTrace(e)); + } if (codeInfo != ICodeInfo.EMPTY) { codeCache.add(clsRawName, codeInfo); }