Skip to content

Commit 1b622a7

Browse files
committed
Only catch RaiseException for ExceptionOperations#messageToString
* Use messageFieldToString() for RaiseException#getMessage() as the context might not be entered.
1 parent fe40a9e commit 1b622a7

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/main/java/org/truffleruby/core/exception/ExceptionOperations.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public static String getMessage(Throwable throwable) {
9797
}
9898

9999
@TruffleBoundary
100-
private static String messageFieldToString(RubyException exception) {
100+
public static String messageFieldToString(RubyException exception) {
101101
Object message = exception.message;
102102
RubyStringLibrary strings = RubyStringLibrary.getUncached();
103103
if (message == null || message == Nil.INSTANCE) {
@@ -115,7 +115,7 @@ public static String messageToString(RubyException exception) {
115115
Object messageObject = null;
116116
try {
117117
messageObject = DispatchNode.getUncached().call(exception, "message");
118-
} catch (Throwable e) {
118+
} catch (RaiseException e) {
119119
// Fall back to the internal message field
120120
}
121121
if (messageObject != null && RubyStringLibrary.getUncached().isRubyString(messageObject)) {

src/main/java/org/truffleruby/language/control/RaiseException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public RubyException getException() {
5353

5454
@Override
5555
public String getMessage() {
56-
return ExceptionOperations.messageToString(exception);
56+
return ExceptionOperations.messageFieldToString(exception);
5757
}
5858

5959
}

0 commit comments

Comments
 (0)