diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index 97342ca11f..5bf7c3bf73 100644 --- a/core/src/main/java/hudson/Util.java +++ b/core/src/main/java/hudson/Util.java @@ -323,6 +323,17 @@ public class Util { return null; // no message } + /** + * Gets a human readable mesasge for the given Win32 error code. + * + * @return + * null if no such message is available. + */ + public static String getWin32ErrorMessage(int n) { + ResourceBundle rb = ResourceBundle.getBundle("/hudson/win32errors"); + return rb.getString("error"+n); + } + /** * Guesses the current host name. */ diff --git a/core/src/main/java/hudson/util/jna/JnaException.java b/core/src/main/java/hudson/util/jna/JnaException.java index 56d789d1d3..dcf2cf0815 100644 --- a/core/src/main/java/hudson/util/jna/JnaException.java +++ b/core/src/main/java/hudson/util/jna/JnaException.java @@ -1,5 +1,7 @@ package hudson.util.jna; +import hudson.Util; + /** * Exception in the registry code. * @@ -7,6 +9,6 @@ package hudson.util.jna; */ public class JnaException extends RuntimeException { public JnaException(int errorCode) { - super("Win32 error: "+errorCode); + super("Win32 error: "+errorCode+" - "+Util.getWin32ErrorMessage(errorCode)); } }