diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractRuleChainVisitor.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractRuleChainVisitor.java index f9122dacb4..176e1f7c35 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractRuleChainVisitor.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/AbstractRuleChainVisitor.java @@ -83,10 +83,11 @@ public abstract class AbstractRuleChainVisitor implements RuleChainVisitor { List ns = nodeNameToNodes.get(nodeNames.get(j)); for (Node node : ns) { // Visit with underlying Rule, not the RuleReference - while (rule instanceof RuleReference) { - rule = ((RuleReference) rule).getRule(); + Rule actualRule = rule; + while (actualRule instanceof RuleReference) { + actualRule = ((RuleReference) actualRule).getRule(); } - visit(rule, node, ctx); + visit(actualRule, node, ctx); } visits += ns.size(); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java index bfc1a5f43c..ed6f9c5fce 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java @@ -257,16 +257,15 @@ public final class StringUtil { char c; int i = 0; while (i < src.length()) { - c = src.charAt(i); + c = src.charAt(i++); if (c > '~') { // 126 if (!supportUTF8) { int codepoint = c; // surrogate characters are not allowed in XML if (Character.isHighSurrogate(c)) { - char low = src.charAt(i + 1); + char low = src.charAt(i++); codepoint = Character.toCodePoint(c, low); - i += 1; } buf.append("&#x").append(Integer.toHexString(codepoint)).append(';'); } else { @@ -283,7 +282,6 @@ public final class StringUtil { } else { buf.append(c); } - i++; } } diff --git a/pom.xml b/pom.xml index dab9df0b52..739771a1d4 100644 --- a/pom.xml +++ b/pom.xml @@ -606,6 +606,7 @@ /net/sourceforge/pmd/pmd-checkstyle-config.xml + /net/sourceforge/pmd/pmd-checkstyle-suppressions.xml true ${project.build.sourceDirectory}