-
Notifications
You must be signed in to change notification settings - Fork 914
Commit
… it).
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -71,7 +71,7 @@ public class RubyException extends RubyObject { | |
public static final int TRACE_MAX = RubyException.TRACE_HEAD + RubyException.TRACE_TAIL + 6; | ||
protected BacktraceData backtraceData; | ||
IRubyObject message; | ||
IRubyObject cause; | ||
IRubyObject cause = UNDEF; | ||
private IRubyObject backtrace; | ||
private RaiseException throwable; | ||
private IRubyObject backtraceLocations; | ||
|
@@ -84,7 +84,6 @@ public RubyException(Ruby runtime, RubyClass rubyClass, String message) { | |
super(runtime, rubyClass); | ||
|
||
this.setMessage(message == null ? runtime.getNil() : runtime.newString(message)); | ||
this.cause = RubyBasicObject.UNDEF; | ||
} | ||
|
||
@JRubyMethod(name = "exception", optional = 1, rest = true, meta = true) | ||
|
@@ -210,7 +209,7 @@ private void setBacktrace(IRubyObject obj) { | |
@JRubyMethod(omit = true) | ||
public IRubyObject backtrace_locations(ThreadContext context) { | ||
if (backtraceLocations != null) return backtraceLocations; | ||
|
||
if (backtraceData == null) { | ||
backtraceLocations = context.nil; | ||
} else { | ||
|
@@ -327,7 +326,7 @@ public void setCause(IRubyObject cause) { | |
|
||
// NOTE: can not have IRubyObject as NativeException has getCause() returning Throwable | ||
public Object getCause() { | ||
return cause == RubyBasicObject.UNDEF ? null : cause; | ||
return cause.isNil() ? null : cause; | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
enebo
Author
Member
|
||
} | ||
|
||
public void setBacktraceData(BacktraceData backtraceData) { | ||
|
2 comments
on commit 64d4fd8
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This commit broke cause logic in raise because .cause == UNDEF
may be true, but getCause()
returns null in that case. Fixing on master.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@headius that may be true but I made another commit after this which should have fixed it.
I do not get this - why would we rather want to 'leak'
UNDEF
outside for a presumable JavagetCause
caller ?