Skip to content

Instantly share code, notes, and snippets.

@headius
Created July 19, 2015 20:16
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save headius/1900d41e760821fbedf8 to your computer and use it in GitHub Desktop.
SSLErrorWaitReadable patch to be lightweight
diff --git a/src/main/java/org/jruby/ext/openssl/SSL.java b/src/main/java/org/jruby/ext/openssl/SSL.java
index 5bbc76d..79f12b7 100644
--- a/src/main/java/org/jruby/ext/openssl/SSL.java
+++ b/src/main/java/org/jruby/ext/openssl/SSL.java
@@ -183,7 +183,7 @@ public class SSL {
if ( errorClass == null ) { // < Ruby 2.0
errorClass = _SSL(runtime).getClass("SSLError"); // fallback
}
- return Utils.newError(runtime, errorClass, message, false);
+ return Utils.newLightweightError(runtime, errorClass, message, false);
}
static RubyModule _SSL(final Ruby runtime) {
diff --git a/src/main/java/org/jruby/ext/openssl/Utils.java b/src/main/java/org/jruby/ext/openssl/Utils.java
index 3071a61..f769087 100644
--- a/src/main/java/org/jruby/ext/openssl/Utils.java
+++ b/src/main/java/org/jruby/ext/openssl/Utils.java
@@ -30,6 +30,7 @@ package org.jruby.ext.openssl;
import java.io.IOException;
import org.jruby.Ruby;
+import org.jruby.RubyArray;
import org.jruby.RubyBasicObject;
import org.jruby.RubyClass;
import org.jruby.RubyModule;
@@ -89,6 +90,10 @@ final class Utils {
return ex;
}
+ static RaiseException newLightweightError(Ruby runtime, RubyClass errorClass, String message, boolean nativeException) {
+ return new RaiseException(runtime, errorClass, "SSL WaitReadable/Writable errors do not have backtraces", RubyArray.newEmptyArray(runtime), nativeException);
+ }
+
static boolean hasNonNilInstanceVariable(final IRubyObject self, final String var) {
final IRubyObject val = self.getInstanceVariables().getInstanceVariable(var);
return val != null && ! val.isNil();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment