diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index fc724b13657c5ce0db1144a36f638d2ea306c878..0a7b745450b33ff96d9355dc32ee5074e492f47d 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -213,22 +213,21 @@ public class Util { */ public static String getWin32ErrorMessage(Throwable e) { String msg = e.getMessage(); - if(msg==null) { - if(e.getCause()!=null) - return getWin32ErrorMessage(e.getCause()); - return null; // no message + if(msg!=null) { + Matcher m = errorCodeParser.matcher(msg); + if(m.matches()) { + try { + ResourceBundle rb = ResourceBundle.getBundle("/hudson/win32errors"); + return rb.getString("error"+m.group(1)); + } catch (Exception _) { + // silently recover from resource related failures + } + } } - Matcher m = errorCodeParser.matcher(msg); - if(!m.matches()) - return null; // failed to parse - try { - ResourceBundle rb = ResourceBundle.getBundle("/hudson/win32errors"); - return rb.getString("error"+m.group(1)); - } catch (Exception _) { - // silently recover from resource related failures - return null; - } + if(e.getCause()!=null) + return getWin32ErrorMessage(e.getCause()); + return null; // no message } /**