diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
index 1edbb1788..536c96625 100644
--- a/config/checkstyle/checkstyle.xml
+++ b/config/checkstyle/checkstyle.xml
@@ -124,6 +124,12 @@
+
+
+
+
+
+
diff --git a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java
index fa041f47f..1db22fea4 100644
--- a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java
+++ b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java
@@ -65,8 +65,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
public abstract class IntegrationTest extends TestUtils {
-
private static final Logger LOG = LoggerFactory.getLogger(IntegrationTest.class);
+
private static final String TEST_DIRECTORY = "src/test/java";
private static final String TEST_DIRECTORY2 = "jadx-core/" + TEST_DIRECTORY;
@@ -150,7 +150,7 @@ public abstract class IntegrationTest extends TestUtils {
assertThat("File list is empty", files, not(empty()));
return getClassNodeFromFiles(files, clazz.getName());
} catch (Exception e) {
- e.printStackTrace();
+ LOG.error("Failed to get class node", e);
fail(e.getMessage());
}
return null;
@@ -194,7 +194,7 @@ public abstract class IntegrationTest extends TestUtils {
try {
d.load();
} catch (Exception e) {
- e.printStackTrace();
+ LOG.error("Load failed", e);
d.close();
fail(e.getMessage());
return null;
@@ -332,7 +332,7 @@ public abstract class IntegrationTest extends TestUtils {
runDecompiledAutoCheck(cls);
}
} catch (Exception e) {
- e.printStackTrace();
+ LOG.error("Auto check failed", e);
fail("Auto check exception: " + e.getMessage());
}
}
diff --git a/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java b/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java
index 47c38b392..060a5c7bc 100644
--- a/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java
+++ b/jadx-core/src/test/java/jadx/tests/integration/inline/TestIssue86.java
@@ -11,6 +11,7 @@ import jadx.tests.api.IntegrationTest;
import static jadx.tests.api.utils.JadxMatchers.containsOne;
import static org.hamcrest.MatcherAssert.assertThat;
+@SuppressWarnings("checkstyle:printstacktrace")
public class TestIssue86 extends IntegrationTest {
public static class TestCls {
diff --git a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java
index 121da0a09..dba88fd67 100644
--- a/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java
+++ b/jadx-core/src/test/java/jadx/tests/integration/switches/TestSwitchWithTryCatch.java
@@ -8,6 +8,7 @@ import jadx.tests.api.IntegrationTest;
import static jadx.tests.api.utils.JadxMatchers.countString;
import static org.hamcrest.MatcherAssert.assertThat;
+@SuppressWarnings("checkstyle:printstacktrace")
public class TestSwitchWithTryCatch extends IntegrationTest {
public static class TestCls {
void test(int a) {
diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch2.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch2.java
index dc623d2bf..4361a1199 100644
--- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch2.java
+++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestMultiExceptionCatch2.java
@@ -11,6 +11,7 @@ import jadx.tests.api.IntegrationTest;
import static jadx.tests.api.utils.JadxMatchers.containsOne;
import static org.hamcrest.MatcherAssert.assertThat;
+@SuppressWarnings("checkstyle:printstacktrace")
public class TestMultiExceptionCatch2 extends IntegrationTest {
public static class TestCls {
diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java
index 5a710cbf6..0bca0f1a0 100644
--- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java
+++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatch7.java
@@ -8,6 +8,7 @@ import jadx.tests.api.IntegrationTest;
import static jadx.tests.api.utils.JadxMatchers.containsOne;
import static org.hamcrest.MatcherAssert.assertThat;
+@SuppressWarnings("checkstyle:printstacktrace")
public class TestTryCatch7 extends IntegrationTest {
public static class TestCls {
diff --git a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java
index bd6d3943b..2906594d2 100644
--- a/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java
+++ b/jadx-core/src/test/java/jadx/tests/integration/trycatch/TestTryCatchFinally.java
@@ -7,6 +7,7 @@ import jadx.tests.api.IntegrationTest;
import static jadx.tests.api.utils.assertj.JadxAssertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertTrue;
+@SuppressWarnings("checkstyle:printstacktrace")
public class TestTryCatchFinally extends IntegrationTest {
public static class TestCls {
diff --git a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java
index c5f4f5528..6c37c09be 100644
--- a/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java
+++ b/jadx-core/src/test/java/jadx/tests/integration/variables/TestVariables4.java
@@ -11,6 +11,7 @@ import jadx.tests.api.IntegrationTest;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.MatcherAssert.assertThat;
+@SuppressWarnings("checkstyle:printstacktrace")
public class TestVariables4 extends IntegrationTest {
public static class TestCls {
diff --git a/jadx-gui/src/main/java/jadx/gui/device/debugger/BreakpointManager.java b/jadx-gui/src/main/java/jadx/gui/device/debugger/BreakpointManager.java
index b3f4fe2a3..c10ea404e 100644
--- a/jadx-gui/src/main/java/jadx/gui/device/debugger/BreakpointManager.java
+++ b/jadx-gui/src/main/java/jadx/gui/device/debugger/BreakpointManager.java
@@ -1,6 +1,5 @@
package jadx.gui.device.debugger;
-import java.io.IOException;
import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
@@ -15,6 +14,9 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
@@ -24,6 +26,8 @@ import jadx.gui.device.debugger.smali.Smali;
import jadx.gui.treemodel.JClass;
public class BreakpointManager {
+ private static final Logger LOG = LoggerFactory.getLogger(BreakpointManager.class);
+
private static Gson gson = null;
private static final Type TYPE_TOKEN = new TypeToken