Skip to content

Commit

Permalink
Fix NPE in traces logic instance.
Browse files Browse the repository at this point in the history
  • Loading branch information
drodriguezhdez committed Aug 28, 2020
1 parent efdc2bf commit 8d6bcaa
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -142,20 +142,23 @@ public ServiceCheck.Status toServiceCheckStatus(){
* Start the trace of a certain Jenkins build.
* @param buildData
* @param run
* @return a boolean to signify the success or failure of the request.
*/
void startBuildTrace(BuildData buildData, Run<?, ?> run);
boolean startBuildTrace(BuildData buildData, Run<?, ?> run);

/**
* Finish the trace of a certain Jenkins build.
* @param buildData
* @return a boolean to signify the success or failure of the request.
*/
void finishBuildTrace(BuildData buildData, Run<?, ?> run);
boolean finishBuildTrace(BuildData buildData, Run<?, ?> run);

/**
* Send all traces related to a certain Jenkins pipeline.
* @param run a particular execution of a Jenkins build
* @param flowNode current flowNode
* @return a boolean to signify the success or failure of the request.
*/
void sendPipelineTrace(Run<?, ?> run, FlowNode flowNode);
boolean sendPipelineTrace(Run<?, ?> run, FlowNode flowNode);

}
Original file line number Diff line number Diff line change
Expand Up @@ -657,18 +657,21 @@ private String getJenkinsVersion(){
}

@Override
public void startBuildTrace(BuildData buildData, Run run) {
public boolean startBuildTrace(BuildData buildData, Run run) {
logger.fine("Traces are only available using Datadog Agent.");
return false;
}

@Override
public void finishBuildTrace(BuildData buildData, Run<?, ?> run) {
public boolean finishBuildTrace(BuildData buildData, Run<?, ?> run) {
logger.fine("Traces are only available using Datadog Agent.");
return false;
}

@Override
public void sendPipelineTrace(Run<?, ?> run, FlowNode flowNode) {
public boolean sendPipelineTrace(Run<?, ?> run, FlowNode flowNode) {
logger.fine("Traces are only available using Datadog Agent.");
return false;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -474,18 +474,57 @@ public boolean sendLogs(String payload) {
}

@Override
public void startBuildTrace(BuildData buildData, Run<?, ?> run) {
traceBuildLogic.startBuildTrace(buildData, run);
public boolean startBuildTrace(BuildData buildData, Run<?, ?> run) {
try {
boolean status = reinitializeTracer(false);
if(!status) {
return false;
}

logger.fine("Started build trace");
this.traceBuildLogic.startBuildTrace(buildData, run);
return true;
} catch (Exception e) {
DatadogUtilities.severe(logger, e, null);
reinitializeTracer(true);
return false;
}
}


@Override
public void finishBuildTrace(BuildData buildData, Run<?, ?> run) {
traceBuildLogic.finishBuildTrace(buildData, run);
public boolean finishBuildTrace(BuildData buildData, Run<?, ?> run) {
try {
boolean status = reinitializeTracer(false);
if(!status) {
return false;
}
logger.fine("Finished build trace");
this.traceBuildLogic.finishBuildTrace(buildData, run);
return true;
} catch (Exception e) {
DatadogUtilities.severe(logger, e, null);
reinitializeTracer(true);
return false;
}
}

@Override
public void sendPipelineTrace(Run<?, ?> run, FlowNode flowNode) {
tracePipelineLogic.execute(run, flowNode);
public boolean sendPipelineTrace(Run<?, ?> run, FlowNode flowNode) {
try {
boolean status = reinitializeTracer(false);
if(!status) {
return false;
}

logger.fine("Send pipeline traces.");
this.tracePipelineLogic.execute(run, flowNode);
return true;
} catch (Exception e){
DatadogUtilities.severe(logger, e, null);
reinitializeTracer(true);
return false;
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,18 +172,21 @@ public boolean sendLogs(String payloadLogs) {
}

@Override
public void startBuildTrace(BuildData buildData, Run<?, ?> run) {
public boolean startBuildTrace(BuildData buildData, Run<?, ?> run) {
this.traceBuildLogic.startBuildTrace(buildData, run);
return true;
}

@Override
public void finishBuildTrace(BuildData buildData, Run<?, ?> run) {
public boolean finishBuildTrace(BuildData buildData, Run<?, ?> run) {
this.traceBuildLogic.finishBuildTrace(buildData, run);
return true;
}

@Override
public void sendPipelineTrace(Run<?, ?> run, FlowNode flowNode) {
public boolean sendPipelineTrace(Run<?, ?> run, FlowNode flowNode) {
this.tracePipelineLogic.execute(run, flowNode);
return true;
}

public ListWriter tracerWriter() {
Expand Down

0 comments on commit 8d6bcaa

Please sign in to comment.