geode-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kirk Lund (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (GEODE-1842) JSON serialization of query results should use Jackson instead of TypedJson
Date Wed, 14 Sep 2016 16:51:20 GMT

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

Mime
View raw message