From cdbb83775e9166df5d2ca3f2af7708e943b41466 Mon Sep 17 00:00:00 2001 From: Rick Giles Date: Sun, 14 Sep 2003 22:39:58 +0000 Subject: [PATCH] Fixed Unused... checks don't work together (bug 805954) --- docs/releasenotes.html | 2 ++ .../checks/usage/AbstractUsageCheck.java | 2 +- .../checks/usage/transmogrify/ASTManager.java | 17 +++++++++++------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/releasenotes.html b/docs/releasenotes.html index c1ed6be7a..35a088268 100644 --- a/docs/releasenotes.html +++ b/docs/releasenotes.html @@ -251,6 +251,8 @@
  • Unused local variables are not always detected (bug 798111)
  • Fixed allowThrowsTagsForSubclasses/allowMissingThrowsTag interfere (bug 803577)
  • + +
  • Unused... checks don't work together (bug 805954)
  • diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/AbstractUsageCheck.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/AbstractUsageCheck.java index 2edbfabfb..5292c6639 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/AbstractUsageCheck.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/AbstractUsageCheck.java @@ -117,7 +117,7 @@ public abstract class AbstractUsageCheck catch (SymbolTableException ste) { logError(ste); } - ASTManager.getInstance().clear(); + ASTManager.getInstance().removeCheck(this); } /** diff --git a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/transmogrify/ASTManager.java b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/transmogrify/ASTManager.java index 969c45f5f..635f55a75 100644 --- a/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/transmogrify/ASTManager.java +++ b/src/checkstyle/com/puppycrawl/tools/checkstyle/checks/usage/transmogrify/ASTManager.java @@ -197,13 +197,18 @@ public final class ASTManager } /** - * Clears all managed elements. + * Removes a check and its check nodes. Clears all managed elements if + * last check removed. + * @param check */ - public void clear() + public void removeCheck(AbstractUsageCheck aCheck) { - mCheckNodes.clear(); - mCompleteTree = null; - mMap.clear(); - mTrees.clear(); + mCheckNodes.remove(aCheck); + if (mCheckNodes.isEmpty()) { + mCompleteTree = null; + mMap.clear(); + mTrees.clear(); + } + } }