diff --git a/core/src/main/java/org/jruby/RubyBasicObject.java b/core/src/main/java/org/jruby/RubyBasicObject.java index 8a2c3a1dec3..f58082b02a5 100644 --- a/core/src/main/java/org/jruby/RubyBasicObject.java +++ b/core/src/main/java/org/jruby/RubyBasicObject.java @@ -1968,7 +1968,12 @@ public void finalize() { private void callFinalizer(IRubyObject finalizer) { ThreadContext context = finalizer.getRuntime().getCurrentContext(); - sites(context).call.call(context, finalizer, finalizer, id); + try { + sites(context).call.call(context, finalizer, finalizer, id); + } finally { + // clear last error so it is not seen by future finalizers + context.setErrorInfo(context.nil); + } } }