-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
… it).
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
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 ?