Skip to content

Commit b140a6b

Browse files
committed
Merge pull request #30 from damienbiggs/topic/exception
Logging: Log stack trace if exception message is null
2 parents cf72e1b + c1480f1 commit b140a6b

2 files changed

Lines changed: 24 additions & 11 deletions

File tree

src/main/java/org/jenkinsci/plugins/vsphere/VSphereBuildStepContainer.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,16 @@ public VSphereBuildStep getBuildStep() {
6969

7070
@Override
7171
public boolean perform(final AbstractBuild<?, ?> build, final Launcher launcher, final BuildListener listener) {
72-
try {
72+
VSphere vsphere = null;
73+
try {
7374
EnvVars env = build.getEnvironment(listener);
7475
env.overrideAll(build.getBuildVariables()); // Add in matrix axes..
7576
String expandedServerName = env.expand(serverName);
7677

7778
startLogs(listener.getLogger(), expandedServerName);
7879
//Need to ensure this server is same as one that was previously saved.
7980
//TODO - also need to improve logging here.
80-
VSphere vsphere;
81+
8182
// select by hash if we have one
8283
if (serverHash != null) {
8384
vsphere = VSphereBuildStep.VSphereBuildStepDescriptor.getVSphereCloudByHash(serverHash).vSphereInstance();
@@ -86,15 +87,16 @@ public boolean perform(final AbstractBuild<?, ?> build, final Launcher launcher,
8687
}
8788

8889
buildStep.setVsphere(vsphere);
89-
90-
Boolean buildStepResult = buildStep.perform(build, launcher, listener);
91-
vsphere.disconnect();
9290

93-
return buildStepResult;
91+
return buildStep.perform(build, launcher, listener);
9492
} catch (Exception e) {
95-
VSphereLogger.vsLogger(listener.getLogger(), e.getMessage());
96-
}
97-
return false;
93+
VSphereLogger.vsLogger(listener.getLogger(), e);
94+
} finally {
95+
if (vsphere != null) {
96+
vsphere.disconnect();
97+
}
98+
}
99+
return false;
98100
}
99101

100102
private void startLogs(PrintStream logger, String serverName){

src/main/java/org/jenkinsci/plugins/vsphere/tools/VSphereLogger.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,23 @@ public class VSphereLogger {
2323
* checks the verboseOutput flag and writes to the logger as appropriate.
2424
*
2525
* @param logger - logger that should receive the information
26-
* @param log - string to be sent to the stream
27-
* @param force - forces the output the stream, overwriting the verboseOutput flag.
2826
*/
2927
public static void vsLogger(PrintStream logger, String str){
3028
if(logger!=null){
3129
logger.println("["+Messages.VSphereLogger_title()+"] "+str);
3230
}
3331
}
32+
33+
public static void vsLogger(PrintStream logger, Exception e){
34+
if(logger ==null) {
35+
return;
36+
}
37+
38+
if (e.getMessage() != null) {
39+
logger.println("["+Messages.VSphereLogger_title()+"] Exception: " + e.getMessage());
40+
} else {
41+
logger.println("["+Messages.VSphereLogger_title()+"] Exception message was null, stack trace");
42+
e.printStackTrace(logger);
43+
}
44+
}
3445
}

0 commit comments

Comments
 (0)