diff --git a/.travis.yml b/.travis.yml index 044309f1c..d4aed94e2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,11 @@ script: ./gradlew clean build jobs: include: + - stage: checks + jdk: openjdk11 + if: branch = master AND repo = env(MAIN_REPO) AND type = push + script: bash scripts/travis-checks.sh + - stage: deploy-unstable jdk: openjdk8 if: branch = master AND repo = env(MAIN_REPO) AND type = push diff --git a/jadx-cli/src/main/java/jadx/cli/clst/ConvertToClsSet.java b/jadx-cli/src/main/java/jadx/cli/clst/ConvertToClsSet.java index 265ea37ee..d8a021a07 100644 --- a/jadx-cli/src/main/java/jadx/cli/clst/ConvertToClsSet.java +++ b/jadx-cli/src/main/java/jadx/cli/clst/ConvertToClsSet.java @@ -34,7 +34,7 @@ public class ConvertToClsSet { usage(); System.exit(1); } - List inputPaths = Stream.of(args).map(s -> Paths.get(s)).collect(Collectors.toList()); + List inputPaths = Stream.of(args).map(Paths::get).collect(Collectors.toList()); Path output = inputPaths.remove(0); JadxPluginManager pluginManager = new JadxPluginManager(); diff --git a/jadx-core/src/main/java/jadx/api/ResourcesLoader.java b/jadx-core/src/main/java/jadx/api/ResourcesLoader.java index 7256304f8..d8488ab51 100644 --- a/jadx-core/src/main/java/jadx/api/ResourcesLoader.java +++ b/jadx-core/src/main/java/jadx/api/ResourcesLoader.java @@ -128,9 +128,7 @@ public final class ResourcesLoader { return; } if (FileUtils.isZipFile(file)) { - ZipSecurity.visitZipEntries(file, (zipFile, entry) -> { - addEntry(list, file, entry); - }); + ZipSecurity.visitZipEntries(file, (zipFile, entry) -> addEntry(list, file, entry)); } else { addResourceFile(list, file); } @@ -158,7 +156,6 @@ public final class ResourcesLoader { } } - @SuppressWarnings("CharsetObjectCanBeUsed") public static ICodeInfo loadToCodeWriter(InputStream is) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(READ_BUFFER_SIZE); copyStream(is, baos); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/HeapUsageBar.java b/jadx-gui/src/main/java/jadx/gui/ui/HeapUsageBar.java index 3d7ac2d67..93b59ce17 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/HeapUsageBar.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/HeapUsageBar.java @@ -25,7 +25,7 @@ public class HeapUsageBar extends JProgressBar { private static final Logger LOG = LoggerFactory.getLogger(HeapUsageBar.class); - private static final double GB = 1024 * 1024 * 1024; + private static final double GB = 1024 * 1024 * 1024d; private static final Color GREEN = new Color(0, 180, 0); private static final Color RED = new Color(200, 0, 0); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/JPackagePopupMenu.java b/jadx-gui/src/main/java/jadx/gui/ui/JPackagePopupMenu.java index 3670d4c4c..45f030ad2 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/JPackagePopupMenu.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/JPackagePopupMenu.java @@ -87,8 +87,9 @@ class JPackagePopupMenu extends JPopupMenu { } private String getRawPackage(JPackage pkg) { - for (JClass cls : pkg.getClasses()) { - return cls.getRootClass().getCls().getClassNode().getClassInfo().getPackage(); + List classes = pkg.getClasses(); + if (!classes.isEmpty()) { + return classes.get(0).getRootClass().getCls().getClassNode().getClassInfo().getPackage(); } for (JPackage innerPkg : pkg.getInnerPackages()) { String rawPackage = getRawPackage(innerPkg); diff --git a/jadx-gui/src/main/java/jadx/gui/ui/RenameDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/RenameDialog.java index d0e973436..9a8c18840 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/RenameDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/RenameDialog.java @@ -159,13 +159,13 @@ public class RenameDialog extends JDialog { int i = 0; while (i < deobfMap.size()) { if (deobfMap.get(i).startsWith(id)) { - LOG.debug("updateDeobfMap(): Removing entry " + deobfMap.get(i)); + LOG.debug("updateDeobfMap(): Removing entry {}", deobfMap.get(i)); deobfMap.remove(i); } else { i++; } } - LOG.debug("updateDeobfMap(): Placing alias = " + alias); + LOG.debug("updateDeobfMap(): Placing alias = {}", alias); deobfMap.add(alias); return deobfMap; } @@ -272,7 +272,7 @@ public class RenameDialog extends JDialog { try { cls.reload(); IndexJob.refreshIndex(cache, cls.getCls()); - } catch (Throwable e) { + } catch (Exception e) { LOG.error("Failed to reload class: {}", cls, e); } } diff --git a/jadx-gui/src/main/java/jadx/gui/utils/CertificateManager.java b/jadx-gui/src/main/java/jadx/gui/utils/CertificateManager.java index f5cf20463..dd4f11298 100755 --- a/jadx-gui/src/main/java/jadx/gui/utils/CertificateManager.java +++ b/jadx-gui/src/main/java/jadx/gui/utils/CertificateManager.java @@ -155,7 +155,7 @@ public class CertificateManager { public static String getThumbPrint(X509Certificate cert, String type) throws NoSuchAlgorithmException, CertificateEncodingException { - MessageDigest md = MessageDigest.getInstance(type); + MessageDigest md = MessageDigest.getInstance(type); // lgtm [java/weak-cryptographic-algorithm] byte[] der = cert.getEncoded(); md.update(der); byte[] digest = md.digest(); diff --git a/scripts/travis-checks.sh b/scripts/travis-checks.sh new file mode 100644 index 000000000..895a6c17d --- /dev/null +++ b/scripts/travis-checks.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -e + +# upload coverage to codecov +./gradlew clean build jacocoTestReport +bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" + +# run sonar checks +./gradlew clean sonarqube -Dsonar.host.url=${SONAR_HOST} -Dsonar.projectKey=jadx -Dsonar.organization=${SONAR_ORG} -Dsonar.login=${SONAR_TOKEN} || echo "Skip sonar build and upload" diff --git a/scripts/travis-master.sh b/scripts/travis-master.sh index 5d1586697..f598cbce7 100644 --- a/scripts/travis-master.sh +++ b/scripts/travis-master.sh @@ -1,13 +1,6 @@ #!/usr/bin/env bash set -e -# upload coverage to codecov -./gradlew clean build jacocoTestReport -bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports" - -# run sonar checks -./gradlew clean sonarqube -Dsonar.host.url=${SONAR_HOST} -Dsonar.projectKey=jadx -Dsonar.organization=${SONAR_ORG} -Dsonar.login=${SONAR_TOKEN} || echo "Skip sonar build and upload" - # upload bundles to bintray unstable package ./gradlew clean dist BINTRAY_PACKAGE=unstable bash scripts/bintray-upload.sh