You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by "Aled Sage (JIRA)" <ji...@apache.org> on 2016/11/21 00:06:59 UTC
[jira] [Resolved] (BROOKLYN-383) REST api serialization of sensor
value that is a Task can cause StackOveflowError
[ https://issues.apache.org/jira/browse/BROOKLYN-383?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aled Sage resolved BROOKLYN-383.
--------------------------------
Resolution: Fixed
Assignee: Aled Sage
Fix Version/s: 0.10.0
> REST api serialization of sensor value that is a Task can cause StackOveflowError
> ---------------------------------------------------------------------------------
>
> Key: BROOKLYN-383
> URL: https://issues.apache.org/jira/browse/BROOKLYN-383
> Project: Brooklyn
> Issue Type: Bug
> Reporter: Aled Sage
> Assignee: Aled Sage
> Priority: Minor
> Fix For: 0.10.0
>
>
> In Brooklyn 0.10.0-SNAPSHOT...
> If a sensor value is set to be the value of an uncompleted {{Task}}, and then that sensor value is retrieved over json, it causes problems!
> For example, if it is an effector task, we can get the warning below (with 600K characters on that log line!):
> {noformat}
> 2016-11-10 11:41:30,059 WARN o.a.b.u.c.j.ErrorAndToStringUnknownTypeSerializer [qtp1382493-13]: Standard serialization not possible for class org.apache.brooklyn.util.core.task.DynamicSequentialTask (Task[sleepEffector]@dTJS4pKS)
> com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain:
> ...
> {noformat}
> For other simpler in-progress tasks, it tries to serialize everything reachable from the task (so we get 251K of serialized state!).
> We should not try to serialize tasks. Instead, we should return a simpler json object that tells us it is a task, gives us the id, and the task's display name.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)