@@ -193,24 +193,25 @@ def self.backtrace?(exc)
193
193
end
194
194
195
195
def self . append_causes ( str , err , causes , reverse , highlight )
196
- if !Primitive . nil? ( err . cause ) && Exception === err . cause && !causes . has_key? ( err . cause )
197
- causes [ err . cause ] = true
196
+ cause = err . cause
197
+ if !Primitive . nil? ( cause ) && Exception === cause && !causes . has_key? ( cause )
198
+ causes [ cause ] = true
198
199
if reverse
199
- append_causes ( str , err . cause , causes , reverse , highlight )
200
- backtrace_message = backtrace_message ( highlight , reverse , err . cause . backtrace , err . cause )
200
+ append_causes ( str , cause , causes , reverse , highlight )
201
+ backtrace_message = backtrace_message ( highlight , reverse , cause . backtrace , cause )
201
202
if backtrace_message . empty?
202
203
str << message_and_class ( err , highlight )
203
204
else
204
205
str << backtrace_message
205
206
end
206
207
else
207
- backtrace_message = backtrace_message ( highlight , reverse , err . cause . backtrace , err . cause )
208
+ backtrace_message = backtrace_message ( highlight , reverse , cause . backtrace , cause )
208
209
if backtrace_message . empty?
209
210
str << message_and_class ( err , highlight )
210
211
else
211
212
str << backtrace_message
212
213
end
213
- append_causes ( str , err . cause , causes , reverse , highlight )
214
+ append_causes ( str , cause , causes , reverse , highlight )
214
215
end
215
216
end
216
217
end
0 commit comments