diff -r cde6907ccab6 -r 456663c8a476 extensions.st --- a/extensions.st Thu Sep 19 15:14:50 2019 +0200 +++ b/extensions.st Thu Sep 19 21:30:50 2019 +0200 @@ -2402,20 +2402,29 @@ inspector2TabJSON - |jsonPrinter jsonString| + |jsonPrinter jsonString countRecursive| (jsonPrinter := Smalltalk classNamed:'JSONPrinter') isNil ifTrue:[^ nil]. + countRecursive := 0. [ jsonString := jsonPrinter encodePrettyPrinted:self. ] on:Error do:[:ex | + (ex isKindOf:RecursionError) ifTrue:[ + ex originator == JSONPrinter ifTrue:[ + countRecursive := countRecursive + 1. + countRecursive < 10 ifTrue:[ + ex proceed. + ]. + ]. + ]. jsonString := '%1\(an instance of %2)\cannot be represented as JSON because:\\%3' withCRs bindWith:self displayString with:self class className with:ex description ]. - ^self newInspector2Tab + ^ self newInspector2Tab label: 'JSON'; priority: 15; view: ((HVScrollableView for:TextView)