From a303ef462253ad5abdb871fc043a170aed2014f0 Mon Sep 17 00:00:00 2001 From: denuno Date: Tue, 6 Dec 2016 22:21:28 -0700 Subject: [PATCH] Avoid scanning empty expressions. Closes #222 --- src/main/java/com/cflint/CFLint.java | 2 ++ src/main/java/com/cflint/config/ConfigUtils.java | 2 ++ .../com/cflint/TestCFBugs_SimpleComplexity.java | 14 ++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/src/main/java/com/cflint/CFLint.java b/src/main/java/com/cflint/CFLint.java index 7be4a8238..e736f1622 100644 --- a/src/main/java/com/cflint/CFLint.java +++ b/src/main/java/com/cflint/CFLint.java @@ -520,6 +520,8 @@ protected void doStructureStart(final Element elem, final Context context, } protected void scanExpression(final CFScriptStatement expression, Context context, final Element elem) { + if(expression == null) + return; for (final CFLintScanner plugin : extensions) { try { plugin.expression(expression, context, bugs); diff --git a/src/main/java/com/cflint/config/ConfigUtils.java b/src/main/java/com/cflint/config/ConfigUtils.java index 990b7c529..261dcbca2 100644 --- a/src/main/java/com/cflint/config/ConfigUtils.java +++ b/src/main/java/com/cflint/config/ConfigUtils.java @@ -24,6 +24,7 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; public class ConfigUtils { @@ -79,6 +80,7 @@ public static String marshalJson(final Object obj) final ObjectMapper objectMapper = new ObjectMapper(); final JaxbAnnotationModule module = new JaxbAnnotationModule(); objectMapper.registerModule(module); + objectMapper.enable(SerializationFeature.INDENT_OUTPUT); objectMapper.writeValue(sw, obj); return sw.toString(); } diff --git a/src/test/java/com/cflint/TestCFBugs_SimpleComplexity.java b/src/test/java/com/cflint/TestCFBugs_SimpleComplexity.java index 7e5a082ee..799821543 100644 --- a/src/test/java/com/cflint/TestCFBugs_SimpleComplexity.java +++ b/src/test/java/com/cflint/TestCFBugs_SimpleComplexity.java @@ -102,6 +102,20 @@ public void testNonComplexNameScriptBased() throws ParseException, IOException { assertEquals(0, result.size()); } + @Test + public void testIfStatementNoElse() throws ParseException, IOException { + final String cfcSrc = "component {\r\n"+ + " public void function foo() {\r\n"+ + " if (something) {\r\n"+ + " doSomething();\r\n"+ + " }\r\n"+ + " }\r\n"+ + "}"; + cfBugs.process(cfcSrc, "test"); + Collection> result = cfBugs.getBugs().getBugList().values(); + assertEquals(0, result.size()); + } + @Test public void testComplexScriptBased() throws ParseException, IOException { final String cfcSrc = "component {\r\n"