簡體   English   中英

GSON.toJson(new RuntimeException())拋出StackOverflowError

[英]GSON.toJson(new RuntimeException()) throws StackOverflowError

我的應用程序拋出了StackOverflowError。 發現我們的應用程序以JSON形式記錄了Exception並且具有以下代碼。

GSON.toJson(object) //here object can be my application exception or any runtime exception

令我驚訝的是,GSON.toJson拋出了StackOverflowError。

嘗試通過以下設置進行驗證:

public static void main(String[] args) {
    Gson GSON = new Gson();
    GSON.toJson(new NullPointerException());
  }

堆棧跟蹤:

Exception in thread "main" java.lang.StackOverflowError
    at com.google.gson.stream.JsonWriter.string(JsonWriter.java:519)
    at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:387)
    at com.google.gson.stream.JsonWriter.beginObject(JsonWriter.java:300)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:190)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:89)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:195)

有人可以告訴我為什么我無法獲得任何異常的JSON嗎?

注意:這僅在我們的應用程序中發生

升級到Gson 2.6.1版本解決了該問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM