[ 
https://issues.apache.org/jira/browse/BROOKLYN-383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15654023#comment-15654023
 ] 

ASF GitHub Bot commented on BROOKLYN-383:
-----------------------------------------

GitHub user aledsage opened a pull request:

    https://github.com/apache/brooklyn-server/pull/424

    BROOKLYN-383: fix json serialisation of tasks

    * Also do the same for policies, enrichers and feeds.
    * Adds AbstractEntityAdjunct.getEntity() to make that easier.
    * Adds TestEntity.sleepEffector
    
    And tests xml persistence of a task, while I'm at it.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/aledsage/brooklyn-server BROOKLYN-383

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/brooklyn-server/pull/424.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #424
    
----
commit d3720c9a6038f3bcd9addeb6404df32667cfb44d
Author: Aled Sage <[email protected]>
Date:   2016-11-10T13:18:43Z

    BROOKLYN-383: fix json serialisation of tasks
    
    * Also do the same for policies, enrichers and feeds.
    * Adds AbstractEntityAdjunct.getEntity() to make that easier.
    * Adds TestEntity.sleepEffector

commit 7d0bb562cd5332a7cf0bac8c0f00fbe728d1861a
Author: Aled Sage <[email protected]>
Date:   2016-11-10T13:19:16Z

    Test XML persistence of task

----


> 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
>            Priority: Minor
>
> 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)

Reply via email to