diff --git a/core/src/main/java/org/jruby/ext/socket/RubyUDPSocket.java b/core/src/main/java/org/jruby/ext/socket/RubyUDPSocket.java index 368feb79716..ebc16f8a6cf 100644 --- a/core/src/main/java/org/jruby/ext/socket/RubyUDPSocket.java +++ b/core/src/main/java/org/jruby/ext/socket/RubyUDPSocket.java @@ -433,6 +433,7 @@ public IRubyObject send(ThreadContext context, IRubyObject[] args) { final String message = e.getMessage(); if (message != null) { switch(message) { + case "Message too large": // Alpine Linux case "Message too long": throw runtime.newErrnoEMSGSIZEError(); } diff --git a/core/src/main/java/org/jruby/runtime/Helpers.java b/core/src/main/java/org/jruby/runtime/Helpers.java index 2d403417229..888a5ccd9d9 100644 --- a/core/src/main/java/org/jruby/runtime/Helpers.java +++ b/core/src/main/java/org/jruby/runtime/Helpers.java @@ -276,6 +276,7 @@ public static Errno errnoFromException(Throwable t) { case "No space left on device" : return Errno.ENOSPC; case "Too many open files" : return Errno.EMFILE; + case "Message too large" : // Alpine Linux case "Message too long" : return Errno.EMSGSIZE; } if (Platform.IS_WINDOWS && errorMessage.contains("connection was aborted")) return Errno.ECONNRESET;