diff --git a/detectable/src/main/java/com/blackduck/integration/detectable/detectables/gradle/inspection/parse/GradleReportLineParser.java b/detectable/src/main/java/com/blackduck/integration/detectable/detectables/gradle/inspection/parse/GradleReportLineParser.java index f35767d0ae..b6cfb28d12 100644 --- a/detectable/src/main/java/com/blackduck/integration/detectable/detectables/gradle/inspection/parse/GradleReportLineParser.java +++ b/detectable/src/main/java/com/blackduck/integration/detectable/detectables/gradle/inspection/parse/GradleReportLineParser.java @@ -69,7 +69,7 @@ public GradleTreeNode parseLine(String line, Map metadata) { } else { String group = gav.get(0); String name = gav.get(1); - String version = gav.get(2); + String version = StringUtils.substringBefore(gav.get(2), " "); return GradleTreeNode.newGav(level, group, name, version); } } diff --git a/detectable/src/test/java/com/blackduck/integration/detectable/detectables/gradle/unit/GradleReportParserTest.java b/detectable/src/test/java/com/blackduck/integration/detectable/detectables/gradle/unit/GradleReportParserTest.java index 844f08e604..286a5cfb16 100644 --- a/detectable/src/test/java/com/blackduck/integration/detectable/detectables/gradle/unit/GradleReportParserTest.java +++ b/detectable/src/test/java/com/blackduck/integration/detectable/detectables/gradle/unit/GradleReportParserTest.java @@ -73,4 +73,27 @@ public void getLineLevelTest() { assertEquals(0, gradleReportLineParser.parseLine(("\\--- org.apache.commons:commons-compress:1.13"), Collections.emptyMap()).getLevel()); } + @Test + void failedSuffixIsStrippedFromVersion() { + GradleReportLineParser gradleReportLineParser = new GradleReportLineParser(); + String line = "+--- org.apache.commons:commons-email:1.2 FAILED"; + GradleTreeNode node = gradleReportLineParser.parseLine(line, Collections.emptyMap()); + + assertTrue(node.getGav().isPresent()); + + GradleGav gav = node.getGav().get(); + assertEquals("org.apache.commons", gav.getGroup()); + assertEquals("commons-email", gav.getName()); + assertEquals("1.2", gav.getVersion(), "Expected version to exclude 'FAILED'"); + } + + @Test + void missingVersionHandledAsUnknownNode() { + GradleReportLineParser parser = new GradleReportLineParser(); + String line = "+--- org.apache.commons:commons-lang3:"; + GradleTreeNode node = parser.parseLine(line, Collections.emptyMap()); + + assertEquals(GradleTreeNode.NodeType.UNKNOWN, node.getNodeType()); + assertFalse(node.getGav().isPresent()); + } }