diff --git a/core/src/main/java/hudson/Util.java b/core/src/main/java/hudson/Util.java index 97342ca11f8fc0b2b81409c74bfea59e03386fa7..5bf7c3bf73587898a26ac324faa440f1774adda5 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 56d789d1d349b0f7da97753abc23a4da93a70513..dcf2cf08157520915afb3a307cff3442389245f4 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)); } }