From 888824d24a33590ab8e0f211c20c9f1282099f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Cort=C3=AAs?= Date: Sun, 29 Jul 2018 09:11:15 +0100 Subject: [PATCH] Fix NullPointerException in CPPTokenizer:99 Due to `skipBlocks = true` and `skipBlocksStart` being uninitialized in `CPPTokenizer`, `maybeSkipBlocks` would always throw a NullPointerException as it is assuming that `setProperties` is always called after the constructor. Changed `CPPLanguage` to always invoke `setProperties`, similarly to `CsLanguage`. This only happens in programmatic invocations. --- .../src/main/java/net/sourceforge/pmd/cpd/CPPLanguage.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPLanguage.java b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPLanguage.java index e4462cba84..ad27da1536 100644 --- a/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPLanguage.java +++ b/pmd-cpp/src/main/java/net/sourceforge/pmd/cpd/CPPLanguage.java @@ -16,7 +16,12 @@ public class CPPLanguage extends AbstractLanguage { * for c/c++ files. */ public CPPLanguage() { + this(System.getProperties()); + } + + public CPPLanguage(Properties properties) { super("C++", "cpp", new CPPTokenizer(), ".h", ".hpp", ".hxx", ".c", ".cpp", ".cxx", ".cc", ".C"); + setProperties(properties); } /*