[ 
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)

Reply via email to