Merge pull request #197 from cloudbees/feature/UX-499

UX-499# NPE fix
This commit is contained in:
vivek 2016-05-24 18:47:29 -07:00
commit 0959c76930
2 changed files with 42 additions and 1 deletions

View File

@ -91,7 +91,9 @@ public class PipelineNodeGraphBuilder {
previousStage = node;
} else if (PipelineNodeUtil.isParallelBranch(node)) { //branch
addChild(node, null);
addChild(previousStage, node);
if(previousStage != null) {
addChild(previousStage, node);
}
FlowNode endNode = getStepEndNode(node);
if (endNode != null) {
nodeStatusMap.put(node, new PipelineNodeGraphBuilder.NodeRunStatus(endNode));

View File

@ -520,6 +520,44 @@ public class PipelineNodeTest extends BaseTest {
}
}
@Test
public void getPipelineJobRunNodeNoStageTest() throws Exception {
WorkflowJob job1 = j.jenkins.createProject(WorkflowJob.class, "pipeline1");
job1.setDefinition(new CpsFlowDefinition("node{\n" +
" parallel 'unit':{\n" +
" node{\n" +
" echo \"Unit testing...\"\n" +
" }\n" +
" },'integration':{\n" +
" node{\n" +
" echo \"Integration testing...\"\n" +
" }\n" +
" }, 'ui':{\n" +
" node{\n" +
" echo \"UI testing...\"\n" +
" }\n" +
" }\n" +
"}"));
WorkflowRun b1 = job1.scheduleBuild2(0).get();
j.assertBuildStatusSuccess(b1);
FlowGraphTable nodeGraphTable = new FlowGraphTable(b1.getExecution());
nodeGraphTable.build();
List<FlowNode> nodes = getStages(nodeGraphTable);
List<FlowNode> parallelNodes = getParallelNodes(nodeGraphTable);
Assert.assertEquals(3, nodes.size());
Assert.assertEquals(3, parallelNodes.size());
// get all nodes for pipeline1
List<Map> resp = get("/organizations/jenkins/pipelines/pipeline1/runs/1/nodes/", List.class);
Assert.assertEquals(nodes.size(), resp.size());
}
@Test
public void getPipelineJobRunNodeTest() throws Exception {
WorkflowJob job1 = j.jenkins.createProject(WorkflowJob.class, "pipeline1");
@ -591,6 +629,7 @@ public class PipelineNodeTest extends BaseTest {
Assert.assertEquals(nodes.get(nodes.size()-1).getId(), edges.get(0).get("id"));
}
@Test
public void getPipelineJobRunNodeLogTest() throws Exception {
WorkflowJob job1 = j.jenkins.createProject(WorkflowJob.class, "pipeline1");