From 65544c64bf70d2e2180f07a5a7bf49969b359cce Mon Sep 17 00:00:00 2001 From: Ahmed Ashour Date: Mon, 25 Mar 2019 14:09:15 +0100 Subject: [PATCH] test: warn about compiler not found, and gracefully report failure (PR #511) --- .../java/jadx/tests/api/compiler/DynamicCompiler.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/jadx-core/src/test/java/jadx/tests/api/compiler/DynamicCompiler.java b/jadx-core/src/test/java/jadx/tests/api/compiler/DynamicCompiler.java index 611730d06..dcd0d7485 100644 --- a/jadx-core/src/test/java/jadx/tests/api/compiler/DynamicCompiler.java +++ b/jadx-core/src/test/java/jadx/tests/api/compiler/DynamicCompiler.java @@ -4,6 +4,10 @@ import javax.tools.JavaCompiler; import javax.tools.JavaFileManager; import javax.tools.JavaFileObject; import javax.tools.ToolProvider; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -14,6 +18,8 @@ import static javax.tools.JavaCompiler.CompilationTask; public class DynamicCompiler { + private static final Logger LOG = LoggerFactory.getLogger(DynamicCompiler.class); + private final ClassNode clsNode; private JavaFileManager fileManager; @@ -29,6 +35,10 @@ public class DynamicCompiler { String code = clsNode.getCode().toString(); JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + if (compiler == null) { + LOG.error("Can not find compiler, please use JDK instead"); + return false; + } fileManager = new ClassFileManager(compiler.getStandardFileManager(null, null, null)); List jFiles = new ArrayList<>(1);