0

我注意到杰克逊 API 通过包装来混淆无限递归,并显示一个暗示递归的“链”,即类似于以下内容:

ArrayList[0]->"fieldX"->"..".

我想知道这样做有什么好处?我最近遇到了一个无限递归错误,如果显式调用可用,则很容易跟踪该错误。

我怀疑这与这样一个事实有关,也许杰克逊对方法的自省发生在一个单独的线程中,或者是以一种丢失显式堆栈调用的方式完成的。

4

1 回答 1

0

Jackson 确实抓住了这一点,因为通常不显示导致它的数据结构比原始堆栈跟踪有用得多。原始堆栈跟踪可以告诉你事情发生在哪里,但通常不能告诉你事情发生的原因。

但是:杰克逊可能应该做的一件事是将原始异常链接为根本原因,以便您也可以检查它。看起来这还没有完成,但应该很容易添加。

我将继续为此提交RFE。

于 2012-08-01T15:23:00.593 回答