From 2ba40c99fac5043f4914ea5eb4a4c19a57dc8d11 Mon Sep 17 00:00:00 2001 From: Julian Dolby Date: Wed, 2 Aug 2017 19:59:54 +0000 Subject: [PATCH 01/11] Eclipse Oxygen --- targets/e46/e46.target | 18 ++++++++++++++++++ targets/e46/pom.xml | 12 ++++++++++++ targets/e47/e47.target | 18 ++++++++++++++++++ targets/e47/pom.xml | 12 ++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 targets/e46/e46.target create mode 100644 targets/e46/pom.xml create mode 100644 targets/e47/e47.target create mode 100644 targets/e47/pom.xml diff --git a/targets/e46/e46.target b/targets/e46/e46.target new file mode 100644 index 000000000..98ea87e02 --- /dev/null +++ b/targets/e46/e46.target @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/targets/e46/pom.xml b/targets/e46/pom.xml new file mode 100644 index 000000000..c6ef6d0be --- /dev/null +++ b/targets/e46/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + com.ibm.wala.target + targets + 1.4.3-SNAPSHOT + + e46 + eclipse-target-definition + diff --git a/targets/e47/e47.target b/targets/e47/e47.target new file mode 100644 index 000000000..5bfa08b89 --- /dev/null +++ b/targets/e47/e47.target @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/targets/e47/pom.xml b/targets/e47/pom.xml new file mode 100644 index 000000000..1110a9986 --- /dev/null +++ b/targets/e47/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + com.ibm.wala.target + targets + 1.4.3-SNAPSHOT + + e47 + eclipse-target-definition + From 3db5ff470704060f3398b7cf32a49d15a2492a87 Mon Sep 17 00:00:00 2001 From: Julian Dolby Date: Wed, 2 Aug 2017 22:20:09 +0000 Subject: [PATCH 02/11] use e47 --- pom.xml | 2 +- targets/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1918dd8a9..5d2e289d9 100644 --- a/pom.xml +++ b/pom.xml @@ -105,7 +105,7 @@ com.ibm.wala.target - e44 + e47 ${project-version} diff --git a/targets/pom.xml b/targets/pom.xml index 8d3281364..3e15ec6d1 100644 --- a/targets/pom.xml +++ b/targets/pom.xml @@ -12,6 +12,6 @@ pom - e44 + e47 From 202a53d0909aba4763cdd0e04838c4b823e4b6ac Mon Sep 17 00:00:00 2001 From: Julian Dolby Date: Thu, 3 Aug 2017 20:43:22 +0000 Subject: [PATCH 03/11] reference javadoc --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27747ed99..ffea51228 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ This is the main source repository for WALA. For more details on WALA, see the WALA home page. +href="http://wala.sourceforge.net">the WALA home page and WALA Javadoc. From ef94d85d2bde9f2d355bc4c18413d533ef0dabce Mon Sep 17 00:00:00 2001 From: Julian Dolby Date: Thu, 3 Aug 2017 21:11:33 +0000 Subject: [PATCH 04/11] quiet --- upload-javascript.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/upload-javascript.sh b/upload-javascript.sh index 5c6d3f862..1c8b9da7e 100644 --- a/upload-javascript.sh +++ b/upload-javascript.sh @@ -10,7 +10,7 @@ if [ "$TRAVIS_REPO_SLUG" == "wala/WALA" ] && git clone --quiet https://${GH_TOKEN}@github.com/wala/javadoc > /dev/null cd javadoc - git rm -rf * + git rm -rf --quiet * cp -Rf $HOME/build/wala/WALA/target/site/apidocs/* . git add -f . git commit -m "Latest javadoc on successful travis build $TRAVIS_BUILD_NUMBER auto-pushed to gh-pages" From 321b28f14984076c778525f49aa314c634fbc9d8 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Wed, 2 Aug 2017 18:26:42 -0500 Subject: [PATCH 05/11] Remove some unnecessary warning suppressions One such annotation was unnecessary because the thing it was suppressing no longer happens. Any future unnecessary warning suppressions of this kind will now be treated as errors. The other annotations were unnecessary because the corresponding warnings have been disabled entirely in the Eclipse projects' configurations. There seems to be no way to tell Eclipse to treat these as anything other than "info" diagnostics in the future, so that's how they will remain. --- .../.settings/org.eclipse.jdt.core.prefs | 2 +- com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs | 2 +- .../source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java | 1 - com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs | 2 +- .../ibm/wala/core/tests/collections/TwoLevelVectorTest.java | 1 - .../src/com/ibm/wala/cfg/exc/intra/NullPointerState.java | 1 - .../src/com/ibm/wala/dataflow/IFDS/TabulationSolver.java | 1 - .../src/com/ibm/wala/shrikeCT/TypeAnnotationsReader.java | 3 --- 8 files changed, 3 insertions(+), 10 deletions(-) diff --git a/com.ibm.wala.cast.java.ecj/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.java.ecj/.settings/org.eclipse.jdt.core.prefs index 81d11b75b..d4effe08b 100644 --- a/com.ibm.wala.cast.java.ecj/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.java.ecj/.settings/org.eclipse.jdt.core.prefs @@ -103,6 +103,6 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=error -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=error org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error org.eclipse.jdt.core.compiler.source=1.7 diff --git a/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs index 91565e151..11445b9f3 100644 --- a/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs @@ -117,7 +117,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=error -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=error org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error org.eclipse.jdt.core.compiler.source=1.7 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java index 71d12ed1f..2ce4bf173 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/loader/JavaScriptLoader.java @@ -1010,7 +1010,6 @@ public class JavaScriptLoader extends CAstAbstractModuleLoader { bootstrapFileNames.add(prologueFileName); } - @SuppressWarnings("unchecked") @Override protected TranslatorToCAst getTranslatorToCAst(final CAst ast, ModuleEntry module) { TranslatorToCAst translator = translatorFactory.make(ast, module); diff --git a/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs index eff65c460..15ef89cc1 100644 --- a/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs @@ -118,7 +118,7 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=di org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=error -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=error org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error org.eclipse.jdt.core.compiler.source=1.7 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java index 38c015082..48b2b15bb 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/core/tests/collections/TwoLevelVectorTest.java @@ -37,7 +37,6 @@ public final class TwoLevelVectorTest extends WalaTestCase { // --- Test cases - @SuppressWarnings("static-method") @Test public void testCase1() { final TwoLevelVector tlVector = new TwoLevelVector<>(); tlVector.iterator(); diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java index 829ed2a21..e5bb05dad 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/NullPointerState.java @@ -261,7 +261,6 @@ public class NullPointerState extends AbstractVariable { /* (non-Javadoc) * @see com.ibm.wala.fixedpoint.impl.AbstractOperator#evaluate(com.ibm.wala.fixpoint.IVariable, com.ibm.wala.fixpoint.IVariable[]) */ - @SuppressWarnings("rawtypes") @Override public byte evaluate(NullPointerState lhs, NullPointerState[] rhs) { boolean changed = false; diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationSolver.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationSolver.java index b2e107e23..f2460de76 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationSolver.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationSolver.java @@ -949,7 +949,6 @@ public class TabulationSolver { TreeMap> map = new TreeMap>(ToStringComparator.instance()); Comparator c = new Comparator() { - @SuppressWarnings("rawtypes") @Override public int compare(Object o1, Object o2) { if (!(o1 instanceof IBasicBlock)) { diff --git a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/TypeAnnotationsReader.java b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/TypeAnnotationsReader.java index 0d24df2cb..8cd4f3d7c 100644 --- a/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/TypeAnnotationsReader.java +++ b/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/TypeAnnotationsReader.java @@ -122,7 +122,6 @@ public class TypeAnnotationsReader extends AnnotationsReader { * * @see JLS (SE8), 4.7.20 */ - @SuppressWarnings("javadoc") public TypeAnnotationAttribute[] getAllTypeAnnotations() throws InvalidClassFileException { TypeAnnotationAttribute[] result = new TypeAnnotationAttribute[getAnnotationCount()]; int offset = beginOffset + 8; // skip attribute_name_index, @@ -167,7 +166,6 @@ public class TypeAnnotationsReader extends AnnotationsReader { * * */ - @SuppressWarnings("javadoc") private Pair getTypeAttributeAndSize(int begin) throws InvalidClassFileException { TargetType target_type = TargetType.fromValue(cr.getUnsignedByte(begin)); @@ -411,7 +409,6 @@ public class TypeAnnotationsReader extends AnnotationsReader { * * @author Martin Hecker martin.hecker@kit.edu */ - @SuppressWarnings("javadoc") public static abstract class TypeAnnotationTarget { private final TargetInfo targetInfo; protected TypeAnnotationTarget(TargetInfo targetInfo) { From b1cd868e06854523f166a633a785a3b9ec6dcf53 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Wed, 2 Aug 2017 18:37:26 -0500 Subject: [PATCH 06/11] Remove an unused method relating to Android system entry points --- .../org/scandroid/util/EntryPoints.java | 31 +------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/com.ibm.wala.scandroid/source/org/scandroid/util/EntryPoints.java b/com.ibm.wala.scandroid/source/org/scandroid/util/EntryPoints.java index 2901abd2f..3feb91f37 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/util/EntryPoints.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/util/EntryPoints.java @@ -154,36 +154,7 @@ public class EntryPoints { } } - private void systemEntry(ClassHierarchy cha, @SuppressWarnings("unused") AndroidAnalysisContext loader) { - String[] systemEntyPoints = { -// "android.app.ActivityThread.main([Ljava/lang/String;)V" -// , "com.android.server.ServerThread.run()V" - //"android.location.LocationManager$ListenerTransport._handleMessage(Landroid/os/Message;)V" -// "android.location.LocationManager$ListenerTransport$1.handleMessage(Landroid/os/Message;)V" -// "android.os.Handler.handleMessage(Landroid/os/Message;)V", -// "android.os.Handler$Callback.handleMessage(Landroid/os/Message;)Z", -// "com.android.internal.os.HandlerCaller$Callback.executeMessage(Landroid/os/Message;)V" -// "android.os.Handler.dispatchMessage(Landroid/os/Message;)V", -// "android.view.View.dispatchTouchEvent(Landroid/view/MotionEvent;)Z", -// "android.view.View.onTouchEvent(Landroid/view/MotionEvent;)Z", -// "android.view.View.setOnClickListener(Landroid/view/View$OnClickListener;)V", - "com.android.server.ServerThread.run()V" - //"android.app.ActivityThread.main([Ljava/lang/String;)V" - }; - - for (int i = 0; i < systemEntyPoints.length; i++) { - MethodReference methodRef = - StringStuff.makeMethodReference(systemEntyPoints[i]); - - for (IMethod im : cha.getPossibleTargets(methodRef)) { - - entries.add(new DefaultEntrypoint(im, cha)); - } - } - } - - - public void addTestEntry(ClassHierarchy cha) { + public void addTestEntry(ClassHierarchy cha) { String[] methodReferences = { // "Test.Apps.Outer$PrivateInnerClass.printNum()V", //"Test.Apps.Outer$PublicInnerClass.printNum()V" From 678e3e64a6e842728abb9b84394849388cca8190 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Wed, 2 Aug 2017 18:39:11 -0500 Subject: [PATCH 07/11] Fix all Eclipse warnings about unused local variables Also report unused variables as errors in the future, not just warnings. We've fixed all of these as of right now, so let's keep it clean in the future too. --- com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs | 2 +- .../nullpointer/IntraproceduralNullPointerAnalysis.java | 1 - .../ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java | 1 - .../ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java | 2 -- .../callgraph/propagation/PropagationCallGraphBuilder.java | 4 ---- .../callgraph/propagation/SSAPropagationCallGraphBuilder.java | 1 - com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs | 2 +- com.ibm.wala.shrike/.settings/org.eclipse.jdt.core.prefs | 2 +- 8 files changed, 3 insertions(+), 12 deletions(-) diff --git a/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs index 5d2827075..2f2891c40 100644 --- a/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs @@ -119,7 +119,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedImport=error org.eclipse.jdt.core.compiler.problem.unusedLabel=error -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=error org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore org.eclipse.jdt.core.compiler.problem.unusedParameter=error org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled diff --git a/com.ibm.wala.core/src/com/ibm/wala/analysis/nullpointer/IntraproceduralNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/analysis/nullpointer/IntraproceduralNullPointerAnalysis.java index fb641a2b8..df28a67d5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/analysis/nullpointer/IntraproceduralNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/analysis/nullpointer/IntraproceduralNullPointerAnalysis.java @@ -35,7 +35,6 @@ public class IntraproceduralNullPointerAnalysis { this.ir = ir; final int maxVarNum = ir.getSymbolTable().getMaxValueNumber(); - final int[] paramValNum = ir.getParameterValueNumbers(); SSACFG cfg = ir.getControlFlowGraph(); final NullPointerFrameWork problem = new NullPointerFrameWork( cfg, ir); diff --git a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java index b0c76318c..32e2b710b 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java +++ b/com.ibm.wala.core/src/com/ibm/wala/cfg/exc/intra/IntraprocNullPointerAnalysis.java @@ -135,7 +135,6 @@ public class IntraprocNullPointerAnalysis { } else { final List catched = searchNodesWithPathToCatchAll(cfg); final NullPointerFrameWork problem = new NullPointerFrameWork(cfg, ir); - final int[] paramValNum = ir.getParameterValueNumbers(); solver = new NullPointerSolver(problem, maxVarNum, cfg.entry(), ir, initialState); diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java index dab538036..43ad98542 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/AbstractDemandFlowGraph.java @@ -56,7 +56,6 @@ import com.ibm.wala.ipa.callgraph.propagation.ReturnValueKey; import com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder; import com.ibm.wala.ipa.callgraph.propagation.cfa.CallerSiteContext; import com.ibm.wala.ipa.cha.IClassHierarchy; -import com.ibm.wala.ssa.DefUse; import com.ibm.wala.ssa.IR; import com.ibm.wala.ssa.ISSABasicBlock; import com.ibm.wala.ssa.SSAAbstractInvokeInstruction; @@ -261,7 +260,6 @@ public abstract class AbstractDemandFlowGraph extends AbstractFlowGraph { return; } - DefUse du = node.getDU(); addNodeInstructionConstraints(node, ir); addNodePassthruExceptionConstraints(node, ir); addNodeConstantConstraints(node, ir); diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java index aebb430bf..782023ff6 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PropagationCallGraphBuilder.java @@ -834,7 +834,6 @@ public abstract class PropagationCallGraphBuilder implements CallGraphBuilder targets = HashSetFactory.make(); VoidFunction f = new VoidFunction() { @Override diff --git a/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs index 61ec488bc..55d31ee39 100644 --- a/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs @@ -110,7 +110,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedImport=error org.eclipse.jdt.core.compiler.problem.unusedLabel=error -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=error org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=error org.eclipse.jdt.core.compiler.problem.unusedParameter=error org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled diff --git a/com.ibm.wala.shrike/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.shrike/.settings/org.eclipse.jdt.core.prefs index 753bc918a..0365061b2 100644 --- a/com.ibm.wala.shrike/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.shrike/.settings/org.eclipse.jdt.core.prefs @@ -119,7 +119,7 @@ org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverridin org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore org.eclipse.jdt.core.compiler.problem.unusedImport=error org.eclipse.jdt.core.compiler.problem.unusedLabel=error -org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=error org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=error org.eclipse.jdt.core.compiler.problem.unusedParameter=error org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled From f76b79b0676d9b84d6c1099f669ab27c89c245c3 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Wed, 2 Aug 2017 19:18:18 -0500 Subject: [PATCH 08/11] Don't complain about unqualified accesses to instance fields I'm very picky about code style, but even I see no benefit in requiring "this.field" instead of simply "field". --- .../.settings/org.eclipse.jdt.core.prefs | 2 +- com.ibm.wala.ide.jdt.test/.settings/org.eclipse.jdt.core.prefs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/com.ibm.wala.cast.js.nodejs.test/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.js.nodejs.test/.settings/org.eclipse.jdt.core.prefs index e3334ee31..2231789cd 100644 --- a/com.ibm.wala.cast.js.nodejs.test/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.js.nodejs.test/.settings/org.eclipse.jdt.core.prefs @@ -100,7 +100,7 @@ org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=error org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=error +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=error org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled diff --git a/com.ibm.wala.ide.jdt.test/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.ide.jdt.test/.settings/org.eclipse.jdt.core.prefs index f11288562..4fd803308 100644 --- a/com.ibm.wala.ide.jdt.test/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.ide.jdt.test/.settings/org.eclipse.jdt.core.prefs @@ -102,7 +102,7 @@ org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=error org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error -org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=error org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled From d6ce679a729b7e4541c2e93d09bebf204a8aeaf1 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Wed, 2 Aug 2017 19:46:45 -0500 Subject: [PATCH 09/11] Add static private serialVersionUID fields to Serializable classes We already have plenty of examples of Serializable classes with this field, and the vast majority of those fields have generated IDs rather than "1L". From this I infer that using proper serialVersionUID fields is considered appropriate WALA coding style. --- com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs | 2 +- .../wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java | 2 ++ com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs | 2 +- .../java/com/ibm/wala/cast/ir/translator/TranslatorToCAst.java | 1 + .../source/java/com/ibm/wala/cast/util/CAstFunctions.java | 1 + .../source/java/com/ibm/wala/cast/util/CAstPattern.java | 2 ++ com.ibm.wala.core.tests/.settings/org.eclipse.jdt.core.prefs | 2 +- .../analysis/dataflow/ContextSensitiveReachingDefs.java | 2 ++ .../ibm/wala/examples/analysis/dataflow/StaticInitializer.java | 2 ++ com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs | 2 +- .../com/ibm/wala/dataflow/IFDS/TabulationCancelException.java | 1 + .../src/com/ibm/wala/dataflow/IFDS/UnorderedDomain.java | 2 ++ .../wala/demandpa/alg/statemachine/StatesMergedException.java | 2 ++ .../wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java | 2 ++ .../wala/ipa/callgraph/CallGraphBuilderCancelException.java | 2 ++ .../ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java | 1 + .../com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java | 2 ++ com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDG.java | 2 ++ com.ibm.wala.core/src/com/ibm/wala/types/TypeName.java | 2 ++ .../src/com/ibm/wala/util/CancelRuntimeException.java | 2 ++ com.ibm.wala.core/src/com/ibm/wala/util/ProgressMaster.java | 2 ++ .../src/com/ibm/wala/util/ssa/ClassLookupException.java | 2 ++ com.ibm.wala.core/src/com/ibm/wala/viz/viewer/CgPanel.java | 1 + com.ibm.wala.core/src/com/ibm/wala/viz/viewer/ChaPanel.java | 1 + com.ibm.wala.core/src/com/ibm/wala/viz/viewer/IrViewer.java | 1 + com.ibm.wala.core/src/com/ibm/wala/viz/viewer/PaPanel.java | 1 + .../src/com/ibm/wala/viz/viewer/SourceViewer.java | 1 + com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java | 1 + com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs | 2 +- .../androidModel/parameters/DefaultInstantiationBehavior.java | 2 ++ .../androidModel/parameters/IInstantiationBehavior.java | 2 ++ .../androidModel/parameters/LoadedInstantiationBehavior.java | 3 +++ com.ibm.wala.ide/.settings/org.eclipse.jdt.core.prefs | 2 +- com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs | 2 +- .../org/scandroid/flow/functions/TaintTransferFunctions.java | 2 ++ com.ibm.wala.util/.settings/org.eclipse.jdt.core.prefs | 2 +- com.ibm.wala.util/src/com/ibm/wala/util/CancelException.java | 2 ++ .../src/com/ibm/wala/util/WalaRuntimeException.java | 1 + com.ibm.wala.util/src/com/ibm/wala/util/collections/Pair.java | 1 + .../src/com/ibm/wala/util/collections/SparseVector.java | 2 ++ .../src/com/ibm/wala/util/collections/TwoLevelVector.java | 2 ++ .../src/com/ibm/wala/util/config/SetOfClasses.java | 2 ++ com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java | 1 + .../com/ibm/wala/util/graph/impl/SlowNumberedNodeManager.java | 1 + .../com/ibm/wala/util/graph/impl/SlowSparseNumberedGraph.java | 2 ++ .../ibm/wala/util/graph/impl/SparseNumberedEdgeManager.java | 2 ++ .../com/ibm/wala/util/graph/traverse/DFSAllPathsFinder.java | 2 ++ .../ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java | 1 + .../ibm/wala/util/graph/traverse/DFSFinishTimeIterator.java | 2 ++ .../wala/util/graph/traverse/GraphDFSDiscoverTimeIterator.java | 1 + .../src/com/ibm/wala/util/intset/BasicNaturalRelation.java | 2 ++ .../src/com/ibm/wala/util/intset/BimodalMutableIntSet.java | 1 + .../src/com/ibm/wala/util/intset/BitVectorBase.java | 2 ++ .../src/com/ibm/wala/util/intset/BitVectorIntSet.java | 2 ++ .../src/com/ibm/wala/util/intset/DebuggingMutableIntSet.java | 2 ++ .../src/com/ibm/wala/util/intset/EmptyIntSet.java | 1 + .../src/com/ibm/wala/util/intset/MutableMapping.java | 2 ++ .../com/ibm/wala/util/intset/MutableSharedBitVectorIntSet.java | 2 ++ .../src/com/ibm/wala/util/intset/MutableSparseIntSet.java | 2 ++ .../src/com/ibm/wala/util/intset/OffsetBitVector.java | 1 + .../src/com/ibm/wala/util/intset/SemiSparseMutableIntSet.java | 2 ++ .../src/com/ibm/wala/util/intset/SimpleIntVector.java | 2 ++ .../src/com/ibm/wala/util/intset/SparseIntSet.java | 2 ++ .../src/com/ibm/wala/util/intset/SparseIntVector.java | 1 + .../src/com/ibm/wala/util/intset/TunedMutableSparseIntSet.java | 2 ++ .../src/com/ibm/wala/util/intset/TunedSimpleIntVector.java | 2 ++ .../src/com/ibm/wala/util/intset/TwoLevelIntVector.java | 2 ++ 67 files changed, 107 insertions(+), 8 deletions(-) diff --git a/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs index 11445b9f3..dbac67f91 100644 --- a/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast.js/.settings/org.eclipse.jdt.core.prefs @@ -60,7 +60,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java index 0ca8061d1..f0bb2e84b 100644 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java @@ -433,6 +433,8 @@ public class FlowGraph implements Iterable { final PointerAnalysis pa = this; class FieldBasedHeapGraph extends SlowSparseNumberedGraph implements HeapGraph { + private static final long serialVersionUID = -3544629644808422215L; + private X ensureNode(X n) { if (!containsNode(n)) { addNode(n); diff --git a/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs index 15ef89cc1..abc67a55a 100644 --- a/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.cast/.settings/org.eclipse.jdt.core.prefs @@ -61,7 +61,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToCAst.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToCAst.java index 0bb58e3fd..ed27770e0 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToCAst.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/TranslatorToCAst.java @@ -34,6 +34,7 @@ public interface TranslatorToCAst { public , K extends CopyKey> void addRewriter(CAstRewriterFactory factory, boolean prepend); public class Error extends WalaException { + private static final long serialVersionUID = -8440950320425119751L; public final Set warning; public Error(Set message) { diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java index 7b89feec6..50d8cac23 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstFunctions.java @@ -39,6 +39,7 @@ public class CAstFunctions { public static Iterator iterateNodes(final CAstNode tree) { return new DFSDiscoverTimeIterator() { + private static final long serialVersionUID = -627203481092871529L; private final Map> pendingChildren = HashMapFactory.make(); @Override diff --git a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPattern.java b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPattern.java index c0f4460d6..9707376e7 100644 --- a/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPattern.java +++ b/com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/CAstPattern.java @@ -59,6 +59,8 @@ public class CAstPattern { public static class Segments extends TreeMap { + private static final long serialVersionUID = 4119719848336209576L; + public CAstNode getSingle(String name) { assert containsKey(name) : name; return (CAstNode) get(name); diff --git a/com.ibm.wala.core.tests/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.core.tests/.settings/org.eclipse.jdt.core.prefs index c75d1dc2b..1b4196e57 100644 --- a/com.ibm.wala.core.tests/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.core.tests/.settings/org.eclipse.jdt.core.prefs @@ -60,7 +60,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java index 7d675d808..b91e5aa50 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/ContextSensitiveReachingDefs.java @@ -74,6 +74,8 @@ public class ContextSensitiveReachingDefs { private class ReachingDefsDomain extends MutableMapping> implements TabulationDomain, BasicBlockInContext> { + private static final long serialVersionUID = 4014252274660361965L; + @Override public boolean hasPriorityOver(PathEdge> p1, PathEdge> p2) { diff --git a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java index e49e132b0..22854c548 100644 --- a/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java +++ b/com.ibm.wala.core.tests/src/com/ibm/wala/examples/analysis/dataflow/StaticInitializer.java @@ -78,6 +78,8 @@ public class StaticInitializer { private class InitializerDomain extends MutableMapping implements TabulationDomain> { + private static final long serialVersionUID = -1897766113586243833L; + @Override public boolean hasPriorityOver(PathEdge> p1, PathEdge> p2) { diff --git a/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs index 2f2891c40..3b5463359 100644 --- a/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.core/.settings/org.eclipse.jdt.core.prefs @@ -70,7 +70,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationCancelException.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationCancelException.java index 33682f788..9d5720e58 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationCancelException.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/TabulationCancelException.java @@ -19,6 +19,7 @@ import com.ibm.wala.util.CancelException; */ public class TabulationCancelException extends CancelException { + private static final long serialVersionUID = 4073189707860241945L; private final Result result; protected TabulationCancelException(Exception cause, Result r) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/UnorderedDomain.java b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/UnorderedDomain.java index f52eac1ce..d53dcf060 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/UnorderedDomain.java +++ b/com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/UnorderedDomain.java @@ -17,6 +17,8 @@ import com.ibm.wala.util.intset.MutableMapping; */ public class UnorderedDomain extends MutableMapping implements TabulationDomain { + private static final long serialVersionUID = -988075488958891635L; + /* * @see com.ibm.wala.dataflow.IFDS.TabulationDomain#isWeakerThan(int, int) */ diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/statemachine/StatesMergedException.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/statemachine/StatesMergedException.java index 6e816da96..7876d1b1a 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/statemachine/StatesMergedException.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/statemachine/StatesMergedException.java @@ -49,4 +49,6 @@ package com.ibm.wala.demandpa.alg.statemachine; */ public class StatesMergedException extends RuntimeException { + private static final long serialVersionUID = 7769961571949421524L; + } diff --git a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java index 0c9249300..66709d4f6 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/SimpleDemandPointerFlowGraph.java @@ -95,6 +95,8 @@ import com.ibm.wala.util.ref.ReferenceCleanser; */ public class SimpleDemandPointerFlowGraph extends SlowSparseNumberedGraph { + private static final long serialVersionUID = 5208052568163692029L; + private final static boolean DEBUG = false; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilderCancelException.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilderCancelException.java index 9ead73777..eaed9c7db 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilderCancelException.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/CallGraphBuilderCancelException.java @@ -20,6 +20,8 @@ import com.ibm.wala.util.CancelException; */ public class CallGraphBuilderCancelException extends CancelException { + private static final long serialVersionUID = -3071193971009314659L; + private final CallGraph cg; private final PointerAnalysis pointerAnalysis; diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java index bea9bdcab..d85f1a8cc 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/AllApplicationEntrypoints.java @@ -24,6 +24,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; */ public class AllApplicationEntrypoints extends HashSet { + private static final long serialVersionUID = 6541081454519490199L; private final static boolean DEBUG = false; /** diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java index 4de5044d3..abcb393fc 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/CallSite.java @@ -20,6 +20,8 @@ import com.ibm.wala.util.collections.Pair; */ public final class CallSite extends Pair { + private static final long serialVersionUID = -5277592800329960642L; + public CallSite(CallSiteReference site, CGNode node) { super(site, node); if (site == null) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDG.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDG.java index 0fe89198b..97d3e184d 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDG.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/SDG.java @@ -207,6 +207,8 @@ public class SDG extends AbstractNumberedGraph private class Nodes extends SlowNumberedNodeManager { + private static final long serialVersionUID = -1450214776332091211L; + @Override public boolean containsNode(Statement N) { if (super.containsNode(N)) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/types/TypeName.java b/com.ibm.wala.core/src/com/ibm/wala/types/TypeName.java index 2ed5a655d..c67f51cef 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/types/TypeName.java +++ b/com.ibm.wala.core/src/com/ibm/wala/types/TypeName.java @@ -236,6 +236,8 @@ public final class TypeName implements Serializable { * A key into the dictionary; this is just like a type name, but uses value equality instead of object equality. */ private final static class TypeNameKey implements Serializable { + private static final long serialVersionUID = -8284030936836318929L; + /** * The package, like "java/lang". null means the unnamed package. */ diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/CancelRuntimeException.java b/com.ibm.wala.core/src/com/ibm/wala/util/CancelRuntimeException.java index 62682e028..97b4d8ac5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/CancelRuntimeException.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/CancelRuntimeException.java @@ -16,6 +16,8 @@ package com.ibm.wala.util; */ public class CancelRuntimeException extends RuntimeException { + private static final long serialVersionUID = 5859062345002606705L; + protected CancelRuntimeException(String msg) { super(msg); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ProgressMaster.java b/com.ibm.wala.core/src/com/ibm/wala/util/ProgressMaster.java index c5c8e0c59..f810c3d05 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ProgressMaster.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ProgressMaster.java @@ -147,6 +147,8 @@ public class ProgressMaster implements IProgressMonitor { public static class TooMuchMemoryUsed extends Exception { + private static final long serialVersionUID = -7174940833610292692L; + } private class Timeout extends Thread { diff --git a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java index bfff83804..dcf8c12ab 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java +++ b/com.ibm.wala.core/src/com/ibm/wala/util/ssa/ClassLookupException.java @@ -54,6 +54,8 @@ package com.ibm.wala.util.ssa; * @author Tobias Blaschke */ public class ClassLookupException extends RuntimeException { + private static final long serialVersionUID = 7551139209041666026L; + public ClassLookupException(String message) { super(message); } diff --git a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/CgPanel.java b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/CgPanel.java index e4808497c..72d30ee19 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/CgPanel.java +++ b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/CgPanel.java @@ -32,6 +32,7 @@ import com.ibm.wala.ssa.IR; public class CgPanel extends JSplitPane{ + private static final long serialVersionUID = -4094408933344852549L; private final CallGraph cg; public CgPanel(CallGraph cg) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/ChaPanel.java b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/ChaPanel.java index 38b8f434d..c6b3d10e0 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/ChaPanel.java +++ b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/ChaPanel.java @@ -30,6 +30,7 @@ import com.ibm.wala.ipa.cha.IClassHierarchy; public class ChaPanel extends JSplitPane { + private static final long serialVersionUID = -9058908127737757320L; private final IClassHierarchy cha; public ChaPanel(IClassHierarchy cha) { diff --git a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/IrViewer.java b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/IrViewer.java index 5241cc519..f8037d879 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/IrViewer.java +++ b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/IrViewer.java @@ -32,6 +32,7 @@ import com.ibm.wala.ssa.IR; import com.ibm.wala.util.collections.HashMapFactory; public class IrViewer extends JPanel{ + private static final long serialVersionUID = -5668847442988389016L; private JTextField methodName; private DefaultListModel irLineList = new DefaultListModel<>(); private JList irLines; diff --git a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/PaPanel.java b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/PaPanel.java index 0dfa31ec5..ffca1dcd5 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/PaPanel.java +++ b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/PaPanel.java @@ -54,6 +54,7 @@ import com.ibm.wala.util.intset.OrdinalSetMapping; */ public class PaPanel extends JSplitPane { + private static final long serialVersionUID = 8120735305334110889L; protected final PointerAnalysis pa; protected final CallGraph cg; diff --git a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/SourceViewer.java b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/SourceViewer.java index 67fc9f01e..893d3d406 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/SourceViewer.java +++ b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/SourceViewer.java @@ -23,6 +23,7 @@ import javax.swing.JScrollPane; import javax.swing.JTextField; public class SourceViewer extends JPanel{ + private static final long serialVersionUID = -1688405955293925453L; private URL sourceURL; private JTextField sourceCodeLocation; private DefaultListModel sourceCodeLinesList = new DefaultListModel<>(); diff --git a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java index 0a9000c43..3e288befd 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java +++ b/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/WalaViewer.java @@ -29,6 +29,7 @@ import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; */ public class WalaViewer extends JFrame { + private static final long serialVersionUID = -8580178580211053765L; protected static final String DefaultMutableTreeNode = null; diff --git a/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs index 55d31ee39..323804954 100644 --- a/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.dalvik/.settings/org.eclipse.jdt.core.prefs @@ -61,7 +61,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java index 198948aa8..c0894fa4b 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/DefaultInstantiationBehavior.java @@ -63,6 +63,7 @@ import com.ibm.wala.util.strings.Atom; public class DefaultInstantiationBehavior extends IInstantiationBehavior { /* package-private */ static final class BehviourValue implements Serializable { + private static final long serialVersionUID = 190943987799306506L; public final InstanceBehavior behaviour; public final Exactness exactness; public final BehviourValue cacheFrom; @@ -81,6 +82,7 @@ public class DefaultInstantiationBehavior extends IInstantiationBehavior { } /* package-private */ static final class BehaviorKey implements Serializable { + private static final long serialVersionUID = -1932639921432060660L; // T is expected to be TypeName or Atom final T base; diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java index 2b1f14319..ca4a7cda2 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/IInstantiationBehavior.java @@ -51,6 +51,8 @@ import com.ibm.wala.types.TypeName; * @author Tobias Blaschke */ public abstract class IInstantiationBehavior implements Serializable { + private static final long serialVersionUID = -3698760758700891479L; + /** * The handling for a variable occurring in the AndroidModel. */ diff --git a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java index 942459426..6e2fe3acb 100644 --- a/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java +++ b/com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ipa/callgraph/androidModel/parameters/LoadedInstantiationBehavior.java @@ -63,6 +63,7 @@ import com.ibm.wala.util.strings.Atom; public class LoadedInstantiationBehavior extends IInstantiationBehavior { private static final class BehviourValue implements Serializable { + private static final long serialVersionUID = -7558845015122601212L; public final InstanceBehavior behaviour; public final Exactness exactness; public final BehviourValue cacheFrom; @@ -86,6 +87,8 @@ public class LoadedInstantiationBehavior extends IInstantiationBehavior { } private static final class BehaviorKey implements Serializable { + private static final long serialVersionUID = 73530; + // T is expected to be TypeName or Atom final T base; diff --git a/com.ibm.wala.ide/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.ide/.settings/org.eclipse.jdt.core.prefs index 6964991ec..c480d672b 100644 --- a/com.ibm.wala.ide/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.ide/.settings/org.eclipse.jdt.core.prefs @@ -60,7 +60,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs index d9bd91b49..20f1e6ad6 100644 --- a/com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.scandroid/.settings/org.eclipse.jdt.core.prefs @@ -46,7 +46,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=no_tag org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TaintTransferFunctions.java b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TaintTransferFunctions.java index f707e133e..ea407354e 100644 --- a/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TaintTransferFunctions.java +++ b/com.ibm.wala.scandroid/source/org/scandroid/flow/functions/TaintTransferFunctions.java @@ -105,6 +105,8 @@ public class TaintTransferFunctions implements // Java, you need type aliases. private static class BlockPair extends Pair, BasicBlockInContext> { + private static final long serialVersionUID = 6838579950051954781L; + protected BlockPair(BasicBlockInContext fst, BasicBlockInContext snd) { super(fst, snd); diff --git a/com.ibm.wala.util/.settings/org.eclipse.jdt.core.prefs b/com.ibm.wala.util/.settings/org.eclipse.jdt.core.prefs index 689e1414e..2581d31ed 100644 --- a/com.ibm.wala.util/.settings/org.eclipse.jdt.core.prefs +++ b/com.ibm.wala.util/.settings/org.eclipse.jdt.core.prefs @@ -60,7 +60,7 @@ org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/CancelException.java b/com.ibm.wala.util/src/com/ibm/wala/util/CancelException.java index b6275eed2..5558614db 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/CancelException.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/CancelException.java @@ -17,6 +17,8 @@ package com.ibm.wala.util; @SuppressWarnings("javadoc") public class CancelException extends Exception { + private static final long serialVersionUID = 3728159810629412928L; + protected CancelException(String msg) { super(msg); } diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/WalaRuntimeException.java b/com.ibm.wala.util/src/com/ibm/wala/util/WalaRuntimeException.java index 639460f11..d24cff52b 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/WalaRuntimeException.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/WalaRuntimeException.java @@ -16,6 +16,7 @@ package com.ibm.wala.util; */ public class WalaRuntimeException extends RuntimeException { + private static final long serialVersionUID = -272544923431659418L; /** * @param s a message describing the failure */ diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/Pair.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/Pair.java index 7fbb86273..e33675488 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/Pair.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/Pair.java @@ -18,6 +18,7 @@ import com.ibm.wala.util.debug.Assertions; public class Pair implements Serializable { + private static final long serialVersionUID = 1861211857872739247L; public final T fst; public final U snd; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/SparseVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/SparseVector.java index b61af1c13..f6be5d4da 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/SparseVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/SparseVector.java @@ -28,6 +28,8 @@ import com.ibm.wala.util.intset.TunedMutableSparseIntSet; */ public class SparseVector implements IVector, Serializable { + private static final long serialVersionUID = -6220164684358954867L; + private final static int DEF_INITIAL_SIZE = 5; /** diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java index 6091961e9..6ae985aff 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/collections/TwoLevelVector.java @@ -22,6 +22,8 @@ import com.ibm.wala.util.math.Logs; */ public class TwoLevelVector implements IVector, Serializable { + private static final long serialVersionUID = -835376054736611070L; + private static final int PAGE_SIZE = 4096; private static final int LOG_PAGE_SIZE = Logs.log2(PAGE_SIZE); diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/config/SetOfClasses.java b/com.ibm.wala.util/src/com/ibm/wala/util/config/SetOfClasses.java index 5ff94eefa..556696540 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/config/SetOfClasses.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/config/SetOfClasses.java @@ -20,6 +20,8 @@ import java.util.Set; */ public abstract class SetOfClasses implements Serializable { + private static final long serialVersionUID = -3048222852073799533L; + public abstract boolean contains(String klassName); public abstract void add(String klass); diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java index ab5f5c904..e602ff40a 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/Path.java @@ -18,6 +18,7 @@ import com.ibm.wala.util.intset.SimpleIntVector; */ public class Path extends SimpleIntVector { + private static final long serialVersionUID = 5622964158500601280L; final int size; private Path(int defaultValue, int size) { diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowNumberedNodeManager.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowNumberedNodeManager.java index af302356f..fb8c0a371 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowNumberedNodeManager.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowNumberedNodeManager.java @@ -22,6 +22,7 @@ import com.ibm.wala.util.intset.MutableMapping; */ public class SlowNumberedNodeManager implements NumberedNodeManager, Serializable { + private static final long serialVersionUID = 8956107128389624337L; /** * A bijection between integer <-> node */ diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowSparseNumberedGraph.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowSparseNumberedGraph.java index d0db61659..cdb7fe9c4 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowSparseNumberedGraph.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SlowSparseNumberedGraph.java @@ -24,6 +24,8 @@ import com.ibm.wala.util.intset.BasicNaturalRelation; */ public class SlowSparseNumberedGraph extends AbstractNumberedGraph implements Serializable { + private static final long serialVersionUID = 7014361126159594838L; + private final SlowNumberedNodeManager nodeManager = new SlowNumberedNodeManager<>(); private final SparseNumberedEdgeManager edgeManager; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedEdgeManager.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedEdgeManager.java index 7d92f6f75..7c693e4e4 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedEdgeManager.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/SparseNumberedEdgeManager.java @@ -28,6 +28,8 @@ import com.ibm.wala.util.intset.IntSetAction; */ public final class SparseNumberedEdgeManager implements NumberedEdgeManager, Serializable { + private static final long serialVersionUID = 6751048618312429623L; + private final NumberedNodeManager nodeManager; /** diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSAllPathsFinder.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSAllPathsFinder.java index b9d754a0c..6a5f0eb7c 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSAllPathsFinder.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSAllPathsFinder.java @@ -28,6 +28,8 @@ import com.ibm.wala.util.graph.Graph; */ public class DFSAllPathsFinder extends DFSPathFinder { + private static final long serialVersionUID = 5413569289853649240L; + public DFSAllPathsFinder(Graph G, Iterator nodes, Predicate f) { super(G, nodes, f); } diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java index d8dabf2e7..be3a6cb63 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSDiscoverTimeIterator.java @@ -26,6 +26,7 @@ import com.ibm.wala.util.graph.NumberedGraph; */ public abstract class DFSDiscoverTimeIterator extends ArrayList implements Iterator { + private static final long serialVersionUID = 4238700455408861924L; /** * an enumeration of all nodes to search from */ diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSFinishTimeIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSFinishTimeIterator.java index 1cfff85d7..1167e0910 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSFinishTimeIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/DFSFinishTimeIterator.java @@ -25,6 +25,8 @@ import com.ibm.wala.util.graph.Graph; */ public abstract class DFSFinishTimeIterator extends ArrayList implements Iterator { + private static final long serialVersionUID = 8440061593631309429L; + /** * the current next element in finishing time order */ diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/GraphDFSDiscoverTimeIterator.java b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/GraphDFSDiscoverTimeIterator.java index fbdb37df9..5c2316ba8 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/GraphDFSDiscoverTimeIterator.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/GraphDFSDiscoverTimeIterator.java @@ -16,6 +16,7 @@ import com.ibm.wala.util.graph.Graph; abstract class GraphDFSDiscoverTimeIterator extends DFSDiscoverTimeIterator { + private static final long serialVersionUID = -5673397879499010863L; /** * the graph being searched */ diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BasicNaturalRelation.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BasicNaturalRelation.java index 531caa725..e845550d9 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BasicNaturalRelation.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BasicNaturalRelation.java @@ -26,6 +26,8 @@ import com.ibm.wala.util.debug.Assertions; */ public final class BasicNaturalRelation implements IBinaryNaturalRelation, Serializable { + private static final long serialVersionUID = 4483720230344867621L; + private final static boolean VERBOSE = false; private final static boolean DEBUG = false; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java index 4fbe2bc8a..217bd2acc 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BimodalMutableIntSet.java @@ -18,6 +18,7 @@ import com.ibm.wala.util.debug.UnimplementedError; */ public class BimodalMutableIntSet implements MutableIntSet { + private static final long serialVersionUID = 7332332295529936562L; MutableIntSet impl; /* diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorBase.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorBase.java index 3ab192b56..278596e36 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorBase.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorBase.java @@ -18,6 +18,8 @@ import java.io.Serializable; @SuppressWarnings("rawtypes") abstract public class BitVectorBase implements Cloneable, Serializable { + private static final long serialVersionUID = 1151811022797406841L; + protected final static boolean DEBUG = false; protected final static int LOG_BITS_PER_UNIT = 5; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorIntSet.java index a8c148f25..b672f593d 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/BitVectorIntSet.java @@ -20,6 +20,8 @@ import com.ibm.wala.util.debug.UnimplementedError; */ public final class BitVectorIntSet implements MutableIntSet { + private static final long serialVersionUID = 7477243071826223843L; + // population count of -1 means needs to be computed again. private int populationCount = 0; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/DebuggingMutableIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/DebuggingMutableIntSet.java index 8a21da521..1c9ceef40 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/DebuggingMutableIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/DebuggingMutableIntSet.java @@ -21,6 +21,8 @@ import com.ibm.wala.util.debug.Assertions; */ class DebuggingMutableIntSet implements MutableIntSet { + private static final long serialVersionUID = 6879912730471879687L; + final MutableIntSet primaryImpl; final MutableIntSet secondaryImpl; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/EmptyIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/EmptyIntSet.java index 8a6b05b6f..9f1bb21e0 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/EmptyIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/EmptyIntSet.java @@ -15,6 +15,7 @@ import java.util.NoSuchElementException; public class EmptyIntSet implements IntSet { + private static final long serialVersionUID = 5116475799916663164L; public static EmptyIntSet instance = new EmptyIntSet(); @Override diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableMapping.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableMapping.java index fe678fb9b..c24da30b7 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableMapping.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableMapping.java @@ -23,6 +23,8 @@ import com.ibm.wala.util.collections.HashMapFactory; */ public class MutableMapping implements OrdinalSetMapping, Serializable { + private static final long serialVersionUID = 4011751404163534418L; + private static final int INITIAL_CAPACITY = 20; private final static int MAX_SIZE = Integer.MAX_VALUE / 4; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSharedBitVectorIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSharedBitVectorIntSet.java index d7c91fee0..ddeaf35ec 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSharedBitVectorIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSharedBitVectorIntSet.java @@ -20,6 +20,8 @@ import com.ibm.wala.util.debug.UnimplementedError; */ public class MutableSharedBitVectorIntSet implements MutableIntSet { + private static final long serialVersionUID = -6630888692508092370L; + private final static boolean DEBUG = false; private final static boolean PARANOID = false; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSparseIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSparseIntSet.java index 22232cada..87c7484b5 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSparseIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableSparseIntSet.java @@ -23,6 +23,8 @@ import com.ibm.wala.util.debug.Assertions; */ public class MutableSparseIntSet extends SparseIntSet implements MutableIntSet { + private static final long serialVersionUID = 1479453398189400698L; + /** * If forced to grow the backing array .. then by how much */ diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/OffsetBitVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/OffsetBitVector.java index fc8248238..22f91c998 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/OffsetBitVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/OffsetBitVector.java @@ -14,6 +14,7 @@ package com.ibm.wala.util.intset; */ public final class OffsetBitVector extends BitVectorBase { + private static final long serialVersionUID = -5846568678514886375L; int offset; private static int wordDiff(int offset1, int offset2) { diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SemiSparseMutableIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SemiSparseMutableIntSet.java index 21e28fdd0..00b991dba 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SemiSparseMutableIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SemiSparseMutableIntSet.java @@ -14,6 +14,8 @@ import com.ibm.wala.util.collections.CompoundIntIterator; import com.ibm.wala.util.collections.EmptyIntIterator; public class SemiSparseMutableIntSet implements MutableIntSet { + private static final long serialVersionUID = 8647721176321526013L; + private static final boolean DEBUG = true; private static final double FIX_SPARSE_MOD = 12; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java index 2821e949e..71736fdef 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SimpleIntVector.java @@ -18,6 +18,8 @@ import java.util.Arrays; */ public class SimpleIntVector implements IntVector, Serializable { + private static final long serialVersionUID = -7909547846468543777L; + private final static int MAX_SIZE = Integer.MAX_VALUE / 4; private final static float GROWTH_FACTOR = 1.5f; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntSet.java index a87212a5e..57b495f26 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntSet.java @@ -23,6 +23,8 @@ import com.ibm.wala.util.debug.UnimplementedError; */ public class SparseIntSet implements IntSet { + private static final long serialVersionUID = 2394141733718319022L; + private final static int SINGLETON_CACHE_SIZE = 5000; private final static SparseIntSet[] singletonCache = new SparseIntSet[SINGLETON_CACHE_SIZE]; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java index 9d9ea11e0..96d3871db 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/SparseIntVector.java @@ -22,6 +22,7 @@ import java.io.Serializable; */ public class SparseIntVector implements IntVector, Serializable { + private static final long serialVersionUID = -2428993854689991888L; private final static int INITIAL_SIZE = 5; private final double EXPANSION = 1.5; int maxIndex = -1; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedMutableSparseIntSet.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedMutableSparseIntSet.java index 6030b76a5..99bfd09b1 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedMutableSparseIntSet.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedMutableSparseIntSet.java @@ -18,6 +18,8 @@ package com.ibm.wala.util.intset; */ public class TunedMutableSparseIntSet extends MutableSparseIntSet { + private static final long serialVersionUID = -1559172158241923881L; + private final int initialSize; private final float expansion; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedSimpleIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedSimpleIntVector.java index 47ac87087..69154a2fc 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedSimpleIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TunedSimpleIntVector.java @@ -15,6 +15,8 @@ package com.ibm.wala.util.intset; */ public class TunedSimpleIntVector extends SimpleIntVector { + private static final long serialVersionUID = -1380867351543398351L; + private final int initialSize; private final float expansion; diff --git a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java index 8111f66da..f52a7ed55 100644 --- a/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java +++ b/com.ibm.wala.util/src/com/ibm/wala/util/intset/TwoLevelIntVector.java @@ -20,6 +20,8 @@ import com.ibm.wala.util.math.Logs; */ public class TwoLevelIntVector implements IntVector, Serializable { + private static final long serialVersionUID = -7383053435395846217L; + private static final int PAGE_SIZE = 4096; private static final int LOG_PAGE_SIZE = Logs.log2(PAGE_SIZE); From 13d807708f9b6d4429a864854139f667508ddd91 Mon Sep 17 00:00:00 2001 From: Ben Liblit Date: Wed, 2 Aug 2017 19:26:17 -0500 Subject: [PATCH 10/11] Suppress an Eclipse warning about lacking XML grammar info The single "No grammar constraints (DTD or XML Schema) referenced in the document" warning arises in a generated file. I doubt that we can change the generation process to include grammar information. Even if we could, I don't mind omitting validation here assuming that we can trust the generator tool to be correct. Validation is much more important for human-authored XML; for tool-authored XML, we can live without it. --- .../.settings/org.eclipse.wst.validation.prefs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/com.ibm.wala.cast.js.test.data/.settings/org.eclipse.wst.validation.prefs b/com.ibm.wala.cast.js.test.data/.settings/org.eclipse.wst.validation.prefs index 914ca50f2..7a4e768d6 100644 --- a/com.ibm.wala.cast.js.test.data/.settings/org.eclipse.wst.validation.prefs +++ b/com.ibm.wala.cast.js.test.data/.settings/org.eclipse.wst.validation.prefs @@ -1,10 +1,10 @@ DELEGATES_PREFERENCE=delegateValidatorList USER_BUILD_PREFERENCE=enabledBuildValidatorList USER_MANUAL_PREFERENCE=enabledManualValidatorList -USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.700.v201610061600 +USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.700.v201508251749 eclipse.preferences.version=1 override=true suspend=false vals/org.eclipse.wst.html.core.HTMLValidator/groups=0107include06111contentType136org.eclipse.wst.html.core.htmlsourceT07fileext04htmlF07fileext05xhtmlF07fileext03htmF07fileext04htplF07fileext03wmlF0107exclude11804file131examples-src/pages/garbage.htmlT0304file132examples-src/pages/garbage2.htmlT0304file139target/site/dependency-convergence.htmlT0304file136examples-src/ajaxslt/test/xpath.htmlT0304file139examples-src/ajaxslt/xslt_unittest.htmlT0304file135examples-src/ajaxslt/test/xslt.htmlT0304file129examples-src/pages/page4.htmlT0304file128examples-src/pages/list.htmlT0304file129examples-src/pages/page1.htmlT0304file129examples-src/pages/page2.htmlT0304file133examples-src/pages/prototype.htmlT0304file133examples-src/pages/prototype.htmlT0304file132examples-src/pages/skeleton.htmlT0304file133examples-src/pages/skeleton2.htmlT0304file133examples-src/pages/skeleton3.htmlT0304file136examples-src/pages/windowonload.htmlT0304file131examples-src/pages/windowx.htmlT0304file145examples-src/tests/portal-example-simple.htmlT03 -vals/org.eclipse.wst.xml.core.xml/groups=0107include05111contentType128org.eclipse.core.runtime.xmlT111contentType134org.eclipse.wst.xml.core.xmlsourceT111contentType134org.eclipse.wst.xml.core.xslsourceT111contentType134org.eclipse.jst.jsp.core.tldsourceT07fileext03xmlF0107exclude08113projectNature134org.eclipse.jst.j2ee.ejb.EJBNature113projectNature130org.eclipse.jst.j2ee.EARNature04file08.projectT0104file110.classpathT0104file110.settings/T0204file122target/p2artifacts.xmlT0304file120target/p2content.xmlT0304file128target/antrun/build-main.xmlT03 +vals/org.eclipse.wst.xml.core.xml/groups=0107include05111contentType128org.eclipse.core.runtime.xmlT111contentType134org.eclipse.wst.xml.core.xmlsourceT111contentType134org.eclipse.wst.xml.core.xslsourceT111contentType134org.eclipse.jst.jsp.core.tldsourceT07fileext03xmlF0107exclude09113projectNature134org.eclipse.jst.j2ee.ejb.EJBNature113projectNature130org.eclipse.jst.j2ee.EARNature04file08.projectT0104file110.classpathT0104file110.settings/T0204file122target/p2artifacts.xmlT0304file120target/p2content.xmlT0304file128target/antrun/build-main.xmlT0304file167target/javadoc-bundle-options/javadoc-options-javadoc-resources.xmlT03 vf.version=3 From 73063628de83a8f41877b9d7a0e94f379fd73b25 Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 5 Aug 2017 14:07:27 -0700 Subject: [PATCH 11/11] cache call targets in CHACallGraph (#213) This is a simple optimization that helps performance a lot. --- .../wala/ipa/callgraph/cha/CHACallGraph.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java index 60aa39abf..2f2086dbc 100644 --- a/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java +++ b/com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/cha/CHACallGraph.java @@ -11,6 +11,7 @@ package com.ibm.wala.ipa.callgraph.cha; import java.lang.ref.SoftReference; +import java.util.Collections; import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -36,14 +37,12 @@ import com.ibm.wala.ssa.IR; import com.ibm.wala.util.CancelException; import com.ibm.wala.util.Predicate; import com.ibm.wala.util.collections.ComposedIterator; -import com.ibm.wala.util.collections.EmptyIterator; import com.ibm.wala.util.collections.FilterIterator; import com.ibm.wala.util.collections.HashMapFactory; import com.ibm.wala.util.collections.HashSetFactory; import com.ibm.wala.util.collections.Iterator2Collection; import com.ibm.wala.util.collections.IteratorUtil; import com.ibm.wala.util.collections.MapIterator; -import com.ibm.wala.util.collections.NonNullSingletonIterator; import com.ibm.wala.util.functions.Function; import com.ibm.wala.util.graph.NumberedEdgeManager; import com.ibm.wala.util.intset.IntSet; @@ -138,17 +137,24 @@ public class CHACallGraph extends BasicCallGraph { return cha; } + private final Map> targetCache = HashMapFactory.make(); + private Iterator getPossibleTargets(CallSiteReference site) { - if (site.isDispatch()) { - return cha.getPossibleTargets(site.getDeclaredTarget()).iterator(); - } else { - IMethod m = cha.resolveMethod(site.getDeclaredTarget()); - if (m != null) { - return new NonNullSingletonIterator(m); + Set result = targetCache.get(site); + if (result == null) { + if (site.isDispatch()) { + result = cha.getPossibleTargets(site.getDeclaredTarget()); } else { - return EmptyIterator.instance(); + IMethod m = cha.resolveMethod(site.getDeclaredTarget()); + if (m != null) { + result = Collections.singleton(m); + } else { + result = Collections.emptySet(); + } } + targetCache.put(site, result); } + return result.iterator(); } @Override