[
https://issues.apache.org/jira/browse/GEODE-1842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirk Lund updated GEODE-1842:
-----------------------------
Description:
TypedJson is prone to StackOverflowErrors which results in SystemFailure
shutdown of any Geode server that hits this problem. Below is the latest error
stack reported against TypedJson:
{noformat}
java.lang.StackOverflowError
at java.lang.Class.getEnclosingMethodInfo(Class.java:1072)
at java.lang.Class.getEnclosingClass(Class.java:1272)
at java.lang.Class.getSimpleBinaryName(Class.java:1443)
at java.lang.Class.getSimpleName(Class.java:1309)
at java.lang.Class.getCanonicalName(Class.java:1399)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.internalToExternal(TypedJson.java:626)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeType(TypedJson.java:610)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:345)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitSpecialObjects(TypedJson.java:517)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:353)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitChildrens(TypedJson.java:670)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.addVal(TypedJson.java:323)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeVal(TypedJson.java:314)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:357)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitChildrens(TypedJson.java:670)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.addVal(TypedJson.java:323)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeVal(TypedJson.java:314)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:357)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitSpecialObjects(TypedJson.java:517)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:353)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitChildrens(TypedJson.java:670)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.addVal(TypedJson.java:323)
at
com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeVal(TypedJson.java:314)
{noformat}
QueryDataFunction uses TypedJson to serialize query results into JSON to return
to GFSH or Pulse. Rather than maintain a broken custom JSON parser, we should
replace TypedJson with Jackson.
was:
I'm working on TypedJson, so I'm looking into TypedJsonJUnitTest but I see some
serious problems. Most of the tests have no assertions and instead have
System.out.printlns. The few tests that do have assertions, catch
GfJsonException and then invoke fail("some message") with no info on the actual
cause.
> JSON serialization of query results should use Jackson instead of TypedJson
> ---------------------------------------------------------------------------
>
> Key: GEODE-1842
> URL: https://issues.apache.org/jira/browse/GEODE-1842
> Project: Geode
> Issue Type: Test
> Components: gfsh, tests
> Reporter: Kirk Lund
> Assignee: Kirk Lund
>
> TypedJson is prone to StackOverflowErrors which results in SystemFailure
> shutdown of any Geode server that hits this problem. Below is the latest
> error stack reported against TypedJson:
> {noformat}
> java.lang.StackOverflowError
> at java.lang.Class.getEnclosingMethodInfo(Class.java:1072)
> at java.lang.Class.getEnclosingClass(Class.java:1272)
> at java.lang.Class.getSimpleBinaryName(Class.java:1443)
> at java.lang.Class.getSimpleName(Class.java:1309)
> at java.lang.Class.getCanonicalName(Class.java:1399)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.internalToExternal(TypedJson.java:626)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeType(TypedJson.java:610)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:345)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitSpecialObjects(TypedJson.java:517)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:353)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitChildrens(TypedJson.java:670)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.addVal(TypedJson.java:323)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeVal(TypedJson.java:314)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:357)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitChildrens(TypedJson.java:670)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.addVal(TypedJson.java:323)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeVal(TypedJson.java:314)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:357)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitSpecialObjects(TypedJson.java:517)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeKeyValue(TypedJson.java:353)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.visitChildrens(TypedJson.java:670)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.addVal(TypedJson.java:323)
> at
> com.gemstone.gemfire.management.internal.cli.json.TypedJson.writeVal(TypedJson.java:314)
> {noformat}
> QueryDataFunction uses TypedJson to serialize query results into JSON to
> return to GFSH or Pulse. Rather than maintain a broken custom JSON parser, we
> should replace TypedJson with Jackson.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)