From 9bf7270bf3e6a1e9c1fcc691e47a7368219e24ed Mon Sep 17 00:00:00 2001 From: Skylot Date: Tue, 24 Sep 2013 21:59:32 +0400 Subject: [PATCH] reformat code, resolve compiler warnings --- build.gradle | 6 +++-- gradle/wrapper/gradle-wrapper.properties | 1 + .../src/main/java/jadx/api/IJadxArgs.java | 10 ++++---- .../src/main/java/jadx/api/JavaPackage.java | 24 +++++++++++++++---- .../main/java/jadx/core/clsp/ClspGraph.java | 4 ++-- .../java/jadx/core/codegen/AnnotationGen.java | 6 ++--- .../main/java/jadx/core/codegen/ClassGen.java | 6 ++--- .../java/jadx/core/codegen/CodeWriter.java | 2 +- .../main/java/jadx/core/codegen/TypeGen.java | 3 +-- .../main/java/jadx/core/deobf/NameMapper.java | 2 +- .../core/dex/attributes/AttributesList.java | 4 ++-- .../java/jadx/core/dex/info/ClassInfo.java | 2 +- .../java/jadx/core/dex/info/MethodInfo.java | 2 +- .../core/dex/instructions/InsnDecoder.java | 4 ++-- .../core/dex/instructions/args/InsnArg.java | 2 +- .../core/dex/instructions/args/TypedVar.java | 2 +- .../instructions/mods/ConstructorInsn.java | 1 - .../java/jadx/core/dex/nodes/InsnNode.java | 2 +- .../dex/nodes/parser/AnnotationsParser.java | 2 +- .../core/dex/visitors/BlockMakerVisitor.java | 4 ++-- .../jadx/core/dex/visitors/CodeShrinker.java | 2 +- .../core/dex/visitors/DotGraphVisitor.java | 4 ++-- .../core/dex/visitors/InstructionRemover.java | 4 ++-- .../dex/visitors/regions/CleanRegions.java | 2 +- .../visitors/regions/ProcessVariables.java | 4 ++-- .../dex/visitors/regions/RegionStack.java | 3 +-- .../src/main/java/jadx/core/utils/Utils.java | 2 +- .../java/jadx/core/utils/files/JavaToDex.java | 2 +- jadx-core/src/main/resources/logback.xml | 20 ++++++++-------- .../test/java/jadx/api/InternalJadxTest.java | 2 +- .../TestStringBuilderElimination.java | 2 ++ .../src/main/java/jadx/gui/MainWindow.java | 1 + .../main/java/jadx/gui/treemodel/JClass.java | 6 ++--- .../main/java/jadx/gui/treemodel/JField.java | 5 ++-- .../main/java/jadx/gui/treemodel/JMethod.java | 9 +++---- .../main/java/jadx/gui/treemodel/JNode.java | 11 +++++---- .../java/jadx/gui/treemodel/JPackage.java | 19 +++++++++++++-- .../main/java/jadx/gui/treemodel/JRoot.java | 4 ++-- .../java/jadx/gui/treemodel/JRootTest.java | 2 +- .../src/main/java/jadx/samples/TestInner.java | 1 + .../main/java/jadx/samples/TestSwitch.java | 11 +++++---- 41 files changed, 121 insertions(+), 84 deletions(-) diff --git a/build.gradle b/build.gradle index 666c7fe7a..5eb11fdff 100644 --- a/build.gradle +++ b/build.gradle @@ -10,8 +10,10 @@ subprojects { version = jadxVersion - compileJava { - options.compilerArgs << '-Xlint' + gradle.projectsEvaluated { + tasks.withType(Compile) { + options.compilerArgs << "-Xlint" << "-Xlint:unchecked" << "-Xlint:deprecation" + } } jar { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e51231269..8c76d9a22 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,3 +1,4 @@ +#Tue Sep 24 21:49:47 MSK 2013 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/jadx-core/src/main/java/jadx/api/IJadxArgs.java b/jadx-core/src/main/java/jadx/api/IJadxArgs.java index ce2c3f2a2..661983cc0 100644 --- a/jadx-core/src/main/java/jadx/api/IJadxArgs.java +++ b/jadx-core/src/main/java/jadx/api/IJadxArgs.java @@ -1,13 +1,13 @@ package jadx.api; public interface IJadxArgs { - int getThreadsCount(); + int getThreadsCount(); - boolean isCFGOutput(); + boolean isCFGOutput(); - boolean isRawCFGOutput(); + boolean isRawCFGOutput(); - boolean isFallbackMode(); + boolean isFallbackMode(); - boolean isVerbose(); + boolean isVerbose(); } diff --git a/jadx-core/src/main/java/jadx/api/JavaPackage.java b/jadx-core/src/main/java/jadx/api/JavaPackage.java index 5b534c8f0..5bb0e6293 100644 --- a/jadx-core/src/main/java/jadx/api/JavaPackage.java +++ b/jadx-core/src/main/java/jadx/api/JavaPackage.java @@ -19,13 +19,27 @@ public final class JavaPackage implements Comparable { return classes; } - @Override - public String toString() { - return name; - } - @Override public int compareTo(JavaPackage o) { return name.compareTo(o.name); } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + JavaPackage that = (JavaPackage) o; + if (!name.equals(that.name)) return false; + return true; + } + + @Override + public int hashCode() { + return name.hashCode(); + } + + @Override + public String toString() { + return name; + } } diff --git a/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java b/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java index 6a880977f..50f27ba92 100644 --- a/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java +++ b/jadx-core/src/main/java/jadx/core/clsp/ClspGraph.java @@ -69,7 +69,7 @@ public class ClspGraph { } Set anc = getAncestors(clsName); NClass cls = nameMap.get(implClsName); - if(cls != null) { + if (cls != null) { return searchCommonParent(anc, cls); } else { LOG.debug("Missing class: {}", implClsName); @@ -97,7 +97,7 @@ public class ClspGraph { result = new HashSet(); ancestorCache.put(clsName, result); NClass cls = nameMap.get(clsName); - if(cls != null) { + if (cls != null) { addAncestorsNames(cls, result); } else { LOG.debug("Missing class: {}", clsName); diff --git a/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java b/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java index ea78487d1..a9cb78996 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/AnnotationGen.java @@ -81,7 +81,7 @@ public class AnnotationGen { if (vl.size() == 1 && vl.containsKey("value")) { code.add(encValueToString(vl.get("value"))); } else { - for (Iterator> it = vl.entrySet().iterator(); it.hasNext();) { + for (Iterator> it = vl.entrySet().iterator(); it.hasNext(); ) { Entry e = it.next(); code.add(e.getKey()); code.add(" = "); @@ -101,7 +101,7 @@ public class AnnotationGen { if (an != null) { Object exs = an.getDefaultValue(); code.add(" throws "); - for (Iterator it = ((List) exs).iterator(); it.hasNext();) { + for (Iterator it = ((List) exs).iterator(); it.hasNext(); ) { ArgType ex = it.next(); code.add(TypeGen.translate(classGen, ex)); if (it.hasNext()) @@ -163,7 +163,7 @@ public class AnnotationGen { StringBuilder str = new StringBuilder(); str.append('{'); List list = (List) val; - for (Iterator it = list.iterator(); it.hasNext();) { + for (Iterator it = list.iterator(); it.hasNext(); ) { Object obj = it.next(); str.append(encValueToString(obj)); if (it.hasNext()) diff --git a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java index aaab6b65a..7d4cd2dd3 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java @@ -356,7 +356,7 @@ public class ClassGen { return shortName; // don't add import if this class from same package - if(classInfo.getPackage().equals(cls.getPackage())) + if (classInfo.getPackage().equals(cls.getPackage())) return shortName; for (ClassInfo cls : imports) { @@ -380,9 +380,9 @@ public class ClassGen { private void insertSourceFileInfo(CodeWriter code, AttrNode node) { IAttribute sourceFileAttr = node.getAttributes().get(AttributeType.SOURCE_FILE); - if(sourceFileAttr != null) { + if (sourceFileAttr != null) { code.startLine(1, "// compiled from: "); - code.add(((SourceFileAttr)sourceFileAttr).getFileName()); + code.add(((SourceFileAttr) sourceFileAttr).getFileName()); } } diff --git a/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java b/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java index 37df2686a..4e2880851 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java +++ b/jadx-core/src/main/java/jadx/core/codegen/CodeWriter.java @@ -167,7 +167,7 @@ public class CodeWriter { buf.trimToSize(); for (Map.Entry entry : annotations.entrySet()) { Object v = entry.getKey(); - if(v instanceof LineAttrNode) { + if (v instanceof LineAttrNode) { LineAttrNode l = (LineAttrNode) v; l.setDecompiledLine(entry.getValue()); } diff --git a/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java b/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java index 5e02b4f39..3102667b7 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/TypeGen.java @@ -36,8 +36,7 @@ public class TypeGen { /** * Convert literal value to string according to value type * - * @throws JadxRuntimeException - * for incorrect type or literal value + * @throws JadxRuntimeException for incorrect type or literal value */ public static String literalToString(long lit, ArgType type) { if (type == null || !type.isTypeKnown()) { diff --git a/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java b/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java index 37d29fcee..14ace09f2 100644 --- a/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java +++ b/jadx-core/src/main/java/jadx/core/deobf/NameMapper.java @@ -7,7 +7,7 @@ import java.util.Set; public class NameMapper { private static final Set reservedNames = new HashSet( - Arrays.asList(new String[] { + Arrays.asList(new String[]{ "abstract", "assert", "boolean", diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/AttributesList.java b/jadx-core/src/main/java/jadx/core/dex/attributes/AttributesList.java index 666120662..096bd8acf 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/AttributesList.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/AttributesList.java @@ -129,7 +129,7 @@ public final class AttributesList { if (type.isUniq()) { uniqAttr.remove(type); } else { - for (Iterator it = attributes.iterator(); it.hasNext();) { + for (Iterator it = attributes.iterator(); it.hasNext(); ) { IAttribute attr = it.next(); if (attr.getType() == type) it.remove(); @@ -148,7 +148,7 @@ public final class AttributesList { if (getMultiCountInternal(type) == 0) return; - for (Iterator it = attributes.iterator(); it.hasNext();) { + for (Iterator it = attributes.iterator(); it.hasNext(); ) { IAttribute a = it.next(); if (a == attr) { it.remove(); diff --git a/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java index 48a1112eb..e2e88504e 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/ClassInfo.java @@ -81,7 +81,7 @@ public final class ClassInfo { char firstChar = name.charAt(0); if (Character.isDigit(firstChar)) { name = "InnerClass_" + name; - } else if(firstChar == '$') { + } else if (firstChar == '$') { name = "_" + name; } if (NameMapper.isReserved(name)) { diff --git a/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java index 010c852b2..5fc4d0d75 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/MethodInfo.java @@ -49,10 +49,10 @@ public final class MethodInfo { return declClass.getFullName() + "." + name; } - public String getFullId() { return declClass.getFullName() + "." + shortId; } + /** * Method name and signature */ diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/InsnDecoder.java b/jadx-core/src/main/java/jadx/core/dex/instructions/InsnDecoder.java index 5f7ce1705..b052e8e0a 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/InsnDecoder.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/InsnDecoder.java @@ -74,7 +74,7 @@ public class InsnDecoder { case Opcodes.FILL_ARRAY_DATA_PAYLOAD: return null; - // move-result will be process in invoke and filled-new-array instructions + // move-result will be process in invoke and filled-new-array instructions case Opcodes.MOVE_RESULT: case Opcodes.MOVE_RESULT_WIDE: case Opcodes.MOVE_RESULT_OBJECT: @@ -676,7 +676,7 @@ public class InsnDecoder { return node; } - private InsnNode insn(InsnType type, RegisterArg res, InsnArg arg) { + private InsnNode insn(InsnType type, RegisterArg res, InsnArg arg) { InsnNode node = new InsnNode(type, 1); node.setResult(res); node.addArg(arg); diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java index e466b63ee..f609d5d6e 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/InsnArg.java @@ -75,7 +75,7 @@ public abstract class InsnArg extends Typed { arg = insn.getArg(0); String name = insn.getResult().getTypedVar().getName(); if (name != null) { - arg.getTypedVar().setName(name); + arg.getTypedVar().setName(name); } break; case CONST_STR: diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/args/TypedVar.java b/jadx-core/src/main/java/jadx/core/dex/instructions/args/TypedVar.java index de56fbb15..35bd1b24a 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/args/TypedVar.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/args/TypedVar.java @@ -83,7 +83,7 @@ public class TypedVar { @Override public String toString() { StringBuilder sb = new StringBuilder(); - if(name != null) + if (name != null) sb.append('\'').append(name).append("' "); sb.append(type); return sb.toString(); diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/mods/ConstructorInsn.java b/jadx-core/src/main/java/jadx/core/dex/instructions/mods/ConstructorInsn.java index 95d52ece2..aff9d8cda 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/mods/ConstructorInsn.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/mods/ConstructorInsn.java @@ -4,7 +4,6 @@ import jadx.core.dex.info.ClassInfo; import jadx.core.dex.info.MethodInfo; import jadx.core.dex.instructions.InsnType; import jadx.core.dex.instructions.InvokeNode; -import jadx.core.dex.instructions.args.InsnArg; import jadx.core.dex.instructions.args.RegisterArg; import jadx.core.dex.nodes.InsnNode; import jadx.core.dex.nodes.MethodNode; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java b/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java index 96b4e56c8..3ecfcfcd7 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/InsnNode.java @@ -71,7 +71,7 @@ public class InsnNode extends LineAttrNode { public boolean containsArg(RegisterArg arg) { for (InsnArg a : arguments) { - if (a == arg || (a.isRegister() && ((RegisterArg)a).getRegNum() == arg.getRegNum())) + if (a == arg || (a.isRegister() && ((RegisterArg) a).getRegNum() == arg.getRegNum())) return true; } return false; diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java index b1492438b..24b5134b8 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/parser/AnnotationsParser.java @@ -73,7 +73,7 @@ public class AnnotationsParser { return new AnnotationsList(list); } - private static final Annotation.Visibility[] visibilities = new Annotation.Visibility[] { + private static final Annotation.Visibility[] visibilities = new Annotation.Visibility[]{ Annotation.Visibility.BUILD, Annotation.Visibility.RUNTIME, Annotation.Visibility.SYSTEM diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/BlockMakerVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/BlockMakerVisitor.java index b4d2bfede..c79ecb782 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/BlockMakerVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/BlockMakerVisitor.java @@ -276,7 +276,7 @@ public class BlockMakerVisitor extends AbstractVisitor { idom.getDominatesOn().add(block); } else { throw new JadxRuntimeException("Can't find immediate dominator for block " + block - + " in " + bs + " preds:" + preds); + + " in " + bs + " preds:" + preds); } } } @@ -313,7 +313,7 @@ public class BlockMakerVisitor extends AbstractVisitor { for (BlockNode block : mth.getBasicBlocks()) { AttributesList attributes = block.getAttributes(); IAttribute loop = attributes.get(AttributeType.LOOP); - if(loop != null && attributes.contains(AttributeFlag.LOOP_START)) { + if (loop != null && attributes.contains(AttributeFlag.LOOP_START)) { mth.registerLoop((LoopAttr) loop); } } diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java b/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java index ff65aad8b..ef4163cc8 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/CodeShrinker.java @@ -237,7 +237,7 @@ public class CodeShrinker extends AbstractVisitor { case CHECK_CAST: InsnArg castArg = insn.getArg(0); - ArgType castType = (ArgType) ((IndexInsnNode)insn).getIndex(); + ArgType castType = (ArgType) ((IndexInsnNode) insn).getIndex(); if (!ArgType.isCastNeeded(castArg.getType(), castType)) { InsnNode insnNode = new InsnNode(InsnType.MOVE, 1); insnNode.setResult(insn.getResult()); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java index 7bc3cf05e..012f7d2c8 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/DotGraphVisitor.java @@ -66,8 +66,8 @@ public class DotGraphVisitor extends AbstractVisitor { dot.startLine("MethodNode[shape=record,label=\"{" + escape(mth.getAccessFlags().makeString()) + escape(mth.getReturnType() + " " - + mth.getParentClass().getFullName() + "." + mth.getName() - + "(" + Utils.listToString(mth.getArguments(true)) + ") ") + + mth.getParentClass().getFullName() + "." + mth.getName() + + "(" + Utils.listToString(mth.getArguments(true)) + ") ") + (attrs.length() == 0 ? "" : " | " + attrs) + (mth.getSuperCall() != null ? "| Super call: " + escape(mth.getSuperCall().toString()) : "") + "}\"];"); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/InstructionRemover.java b/jadx-core/src/main/java/jadx/core/dex/visitors/InstructionRemover.java index f6a0168c7..b0323195d 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/InstructionRemover.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/InstructionRemover.java @@ -63,7 +63,7 @@ public class InstructionRemover { for (InsnNode rem : toRemove) { unbindInsn(rem); - for (Iterator it = insns.iterator(); it.hasNext();) { + for (Iterator it = insns.iterator(); it.hasNext(); ) { InsnNode insn = it.next(); if (insn == rem) { it.remove(); @@ -76,7 +76,7 @@ public class InstructionRemover { public static void remove(BlockNode block, InsnNode insn) { unbindInsn(insn); // remove by pointer (don't use equals) - for (Iterator it = block.getInstructions().iterator(); it.hasNext();) { + for (Iterator it = block.getInstructions().iterator(); it.hasNext(); ) { InsnNode ir = it.next(); if (ir == insn) { it.remove(); diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java index 3006bc006..45d5243f9 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/CleanRegions.java @@ -27,7 +27,7 @@ public class CleanRegions extends AbstractVisitor { if (!(region instanceof Region)) return; - for (Iterator it = region.getSubBlocks().iterator(); it.hasNext();) { + for (Iterator it = region.getSubBlocks().iterator(); it.hasNext(); ) { IContainer container = it.next(); if (container instanceof BlockNode) { BlockNode block = (BlockNode) container; diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java index acb88c5b3..ff85bc289 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/ProcessVariables.java @@ -111,7 +111,7 @@ public class ProcessVariables extends AbstractVisitor { usageMap.remove(arg); } - for (Iterator> it = usageMap.entrySet().iterator(); it.hasNext();) { + for (Iterator> it = usageMap.entrySet().iterator(); it.hasNext(); ) { Entry entry = it.next(); Usage u = entry.getValue(); @@ -138,7 +138,7 @@ public class ProcessVariables extends AbstractVisitor { // find region which contain all usage regions Set set = u.getUseRegions(); - for (Iterator it = set.iterator(); it.hasNext();) { + for (Iterator it = set.iterator(); it.hasNext(); ) { IRegion r = it.next(); IRegion parent = r.getParent(); if (parent != null && set.contains(parent)) diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java index 6e0f6f1b1..d64e490b7 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/regions/RegionStack.java @@ -73,8 +73,7 @@ final class RegionStack { /** * Add boundary(exit) node for current stack frame * - * @param exit - * boundary node, null will be ignored + * @param exit boundary node, null will be ignored */ public void addExit(BlockNode exit) { if (exit != null) diff --git a/jadx-core/src/main/java/jadx/core/utils/Utils.java b/jadx-core/src/main/java/jadx/core/utils/Utils.java index 5288429b7..ad4ea242c 100644 --- a/jadx-core/src/main/java/jadx/core/utils/Utils.java +++ b/jadx-core/src/main/java/jadx/core/utils/Utils.java @@ -69,7 +69,7 @@ public class Utils { return ""; StringBuilder str = new StringBuilder(); - for (Iterator it = list.iterator(); it.hasNext();) { + for (Iterator it = list.iterator(); it.hasNext(); ) { Object o = it.next(); str.append(o); if (it.hasNext()) diff --git a/jadx-core/src/main/java/jadx/core/utils/files/JavaToDex.java b/jadx-core/src/main/java/jadx/core/utils/files/JavaToDex.java index 098d8ca9c..831a3d14e 100644 --- a/jadx-core/src/main/java/jadx/core/utils/files/JavaToDex.java +++ b/jadx-core/src/main/java/jadx/core/utils/files/JavaToDex.java @@ -34,7 +34,7 @@ public class JavaToDex { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { System.setOut(new PrintStream(baos)); - DxArgs args = new DxArgs("-", new String[] { javaFile }); + DxArgs args = new DxArgs("-", new String[]{javaFile}); Main.run(args); baos.close(); } catch (Throwable e) { diff --git a/jadx-core/src/main/resources/logback.xml b/jadx-core/src/main/resources/logback.xml index f4e91a312..ec2224bac 100644 --- a/jadx-core/src/main/resources/logback.xml +++ b/jadx-core/src/main/resources/logback.xml @@ -1,13 +1,13 @@ - - - %d{HH:mm:ss} %-5level - %msg%n - - + + + %d{HH:mm:ss} %-5level - %msg%n + + - - - - - \ No newline at end of file + + + + + diff --git a/jadx-core/src/test/java/jadx/api/InternalJadxTest.java b/jadx-core/src/test/java/jadx/api/InternalJadxTest.java index 47b07091c..6b62b1625 100644 --- a/jadx-core/src/test/java/jadx/api/InternalJadxTest.java +++ b/jadx-core/src/test/java/jadx/api/InternalJadxTest.java @@ -21,7 +21,7 @@ import static junit.framework.Assert.fail; public abstract class InternalJadxTest { - public ClassNode getClassNode(Class clazz) { + public ClassNode getClassNode(Class clazz) { try { File temp = getJarForClass(clazz); diff --git a/jadx-core/src/test/java/jadx/tests/internal/TestStringBuilderElimination.java b/jadx-core/src/test/java/jadx/tests/internal/TestStringBuilderElimination.java index 5cf7d161f..2b33604cc 100644 --- a/jadx-core/src/test/java/jadx/tests/internal/TestStringBuilderElimination.java +++ b/jadx-core/src/test/java/jadx/tests/internal/TestStringBuilderElimination.java @@ -12,6 +12,8 @@ import static org.junit.Assert.assertThat; public class TestStringBuilderElimination extends InternalJadxTest { public static class MyException extends Exception { + private static final long serialVersionUID = 4245254480662372757L; + public MyException(String str, Exception e) { // super("msg:" + str, e); } diff --git a/jadx-gui/src/main/java/jadx/gui/MainWindow.java b/jadx-gui/src/main/java/jadx/gui/MainWindow.java index 201fb561c..012edc693 100644 --- a/jadx-gui/src/main/java/jadx/gui/MainWindow.java +++ b/jadx-gui/src/main/java/jadx/gui/MainWindow.java @@ -47,6 +47,7 @@ import org.fife.ui.rtextarea.RTextScrollPane; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@SuppressWarnings("serial") public class MainWindow extends JFrame { private static final Logger LOG = LoggerFactory.getLogger(MainWindow.class); diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java index 680b7f25f..9038c4b54 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JClass.java @@ -8,9 +8,9 @@ import jadx.gui.utils.Utils; import javax.swing.Icon; import javax.swing.ImageIcon; -import javax.swing.tree.DefaultMutableTreeNode; -public class JClass extends DefaultMutableTreeNode implements JNode { +public class JClass extends JNode { + private static final long serialVersionUID = -1239986875244097177L; private static final ImageIcon ICON_CLASS = Utils.openIcon("class_obj"); private static final ImageIcon ICON_CLASS_DEFAULT = Utils.openIcon("class_default_obj"); @@ -49,7 +49,7 @@ public class JClass extends DefaultMutableTreeNode implements JNode { } } - public String getCode(){ + public String getCode() { return cls.getCode(); } diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java index b6f4af792..74504e7ef 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JField.java @@ -7,9 +7,10 @@ import jadx.gui.utils.Utils; import javax.swing.Icon; import javax.swing.ImageIcon; -import javax.swing.tree.DefaultMutableTreeNode; -public class JField extends DefaultMutableTreeNode implements JNode { +public class JField extends JNode { + private static final long serialVersionUID = 1712572192106793359L; + private static final ImageIcon ICON_FLD_DEF = Utils.openIcon("field_default_obj"); private static final ImageIcon ICON_FLD_PRI = Utils.openIcon("field_private_obj"); private static final ImageIcon ICON_FLD_PRO = Utils.openIcon("field_protected_obj"); diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java index 0d26c0531..12766774a 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JMethod.java @@ -8,10 +8,11 @@ import jadx.gui.utils.Utils; import javax.swing.Icon; import javax.swing.ImageIcon; -import javax.swing.tree.DefaultMutableTreeNode; import java.util.Iterator; -public class JMethod extends DefaultMutableTreeNode implements JNode { +public class JMethod extends JNode { + private static final long serialVersionUID = 3834526867464663751L; + private static final ImageIcon ICON_MTH_DEF = Utils.openIcon("methdef_obj"); private static final ImageIcon ICON_MTH_PRI = Utils.openIcon("methpri_obj"); private static final ImageIcon ICON_MTH_PRO = Utils.openIcon("methpro_obj"); @@ -46,7 +47,7 @@ public class JMethod extends DefaultMutableTreeNode implements JNode { public Icon getIcon() { AccessInfo accessFlags = mth.getAccessFlags(); OverlayIcon icon = Utils.makeIcon(accessFlags, ICON_MTH_PUB, ICON_MTH_PRI, ICON_MTH_PRO, ICON_MTH_DEF); - if(accessFlags.isConstructor()) icon.add(ICON_CONSTRUCTOR); + if (accessFlags.isConstructor()) icon.add(ICON_CONSTRUCTOR); if (accessFlags.isSynchronized()) icon.add(ICON_SYNC); return icon; } @@ -62,7 +63,7 @@ public class JMethod extends DefaultMutableTreeNode implements JNode { base.append('('); for (Iterator it = mth.getArguments().iterator(); it.hasNext(); ) { base.append(Utils.typeStr(it.next())); - if(it.hasNext()) + if (it.hasNext()) base.append(", "); } base.append(')'); diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java index 5601cdb2c..24b6738a2 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JNode.java @@ -1,14 +1,15 @@ package jadx.gui.treemodel; import javax.swing.Icon; +import javax.swing.tree.DefaultMutableTreeNode; -public interface JNode { +public abstract class JNode extends DefaultMutableTreeNode { - JClass getJParent(); + public abstract JClass getJParent(); - int getLine(); + public abstract int getLine(); - void updateChilds(); + public abstract void updateChilds(); - Icon getIcon(); + public abstract Icon getIcon(); } diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java index af2c98767..d781e0b66 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JPackage.java @@ -6,11 +6,12 @@ import jadx.gui.utils.Utils; import javax.swing.Icon; import javax.swing.ImageIcon; -import javax.swing.tree.DefaultMutableTreeNode; import java.util.ArrayList; import java.util.List; -public class JPackage extends DefaultMutableTreeNode implements JNode, Comparable { +public class JPackage extends JNode implements Comparable { + private static final long serialVersionUID = -4120718634156839804L; + private static final ImageIcon PACKAGE_ICON = Utils.openIcon("package_obj"); private String name; @@ -81,6 +82,20 @@ public class JPackage extends DefaultMutableTreeNode implements JNode, Comparabl return name.compareTo(o.name); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + JPackage jPackage = (JPackage) o; + if (!name.equals(jPackage.name)) return false; + return true; + } + + @Override + public int hashCode() { + return name.hashCode(); + } + @Override public String toString() { return name; diff --git a/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java b/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java index 55decbe84..aa7e59b70 100644 --- a/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java +++ b/jadx-gui/src/main/java/jadx/gui/treemodel/JRoot.java @@ -6,7 +6,6 @@ import jadx.gui.utils.Utils; import javax.swing.Icon; import javax.swing.ImageIcon; -import javax.swing.tree.DefaultMutableTreeNode; import java.io.File; import java.util.ArrayList; import java.util.Collections; @@ -17,7 +16,8 @@ import java.util.List; import java.util.Map; import java.util.Set; -public class JRoot extends DefaultMutableTreeNode implements JNode { +public class JRoot extends JNode { + private static final long serialVersionUID = 8888495789773527342L; private static final ImageIcon ROOT_ICON = Utils.openIcon("java_model_obj"); diff --git a/jadx-gui/src/test/java/jadx/gui/treemodel/JRootTest.java b/jadx-gui/src/test/java/jadx/gui/treemodel/JRootTest.java index 34b5fb812..15b4bb365 100644 --- a/jadx-gui/src/test/java/jadx/gui/treemodel/JRootTest.java +++ b/jadx-gui/src/test/java/jadx/gui/treemodel/JRootTest.java @@ -14,7 +14,7 @@ import java.util.List; import org.junit.Test; -import static junit.framework.Assert.assertEquals; +import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; public class JRootTest { diff --git a/jadx-samples/src/main/java/jadx/samples/TestInner.java b/jadx-samples/src/main/java/jadx/samples/TestInner.java index e10d551a7..87738b920 100644 --- a/jadx-samples/src/main/java/jadx/samples/TestInner.java +++ b/jadx-samples/src/main/java/jadx/samples/TestInner.java @@ -51,6 +51,7 @@ public class TestInner extends AbstractTest { }.run(); } + @SuppressWarnings("serial") public static class MyException extends Exception { public MyException(String str, Exception e) { super("msg:" + str, e); diff --git a/jadx-samples/src/main/java/jadx/samples/TestSwitch.java b/jadx-samples/src/main/java/jadx/samples/TestSwitch.java index 08acab6ee..2d4d9356c 100644 --- a/jadx-samples/src/main/java/jadx/samples/TestSwitch.java +++ b/jadx-samples/src/main/java/jadx/samples/TestSwitch.java @@ -2,7 +2,7 @@ package jadx.samples; public class TestSwitch extends AbstractTest { - public static final int test1(int i) { + public static int test1(int i) { int k = i * 4; switch (k) { @@ -19,7 +19,7 @@ public class TestSwitch extends AbstractTest { return i; } - public static final int test2(int i) { + public static int test2(int i) { int k = i; switch (k) { case 1: @@ -39,7 +39,7 @@ public class TestSwitch extends AbstractTest { return -i; } - public static final int test3(int i, int j) { + public static int test3(int i, int j) { int k = i; switch (k) { case 1: @@ -53,7 +53,7 @@ public class TestSwitch extends AbstractTest { return -1; } - public static final int test4(int i) { + public static int test4(int i) { int k = i; switch (k) { case 1: @@ -64,7 +64,8 @@ public class TestSwitch extends AbstractTest { return -1; } - public static final int test5(int i, int b) { + @SuppressWarnings("fallthrough") + public static int test5(int i, int b) { int k = i; switch (k) { case 1: