nextflow icon indicating copy to clipboard operation
nextflow copied to clipboard

Add pretty print option to `dump`

Open matthdsm opened this issue 2 years ago • 19 comments

New feature

Hi,

Would it be possible to add a "pretty-print" option to the dump operator? This would greatly improve readability of large channel dumps

Usage scenario

Better readability when using nested maps in a channel

matthdsm avatar Aug 30 '22 08:08 matthdsm

Alternatively, make it suitable for streaming to yq, or preferably jq.

Currently one can do:

pretty_print_dump.nf:

workflow {
    Channel.of( 
        [ 
            id: 'test', 
            samples: [ 
                [ id: 'S1', path: '/path/to/s1' ], 
                [ id: 'S2', path: '/path/to/s2' ], 
                [ id: 'S3', path: '/path/to/s3' ] 
            ] 
        ]
    ).dump(tag: 'map')
}

and then:

# pip install yq
nextflow run -dump-channels -ansi-log false pretty_print_dump.nf | grep "DUMP" | sed 's/.*\] \[/\[/' | yq  -y '.'

to produce:

- id: test
- samples:
    - - id: S1
      - path: /path/to/s1
    - - id: S2
      - path: /path/to/s2
    - - id: S3
      - path: /path/to/s3

One can also hack this around to make it work on multiple dump lines by:

nextflow run -dump-channels -ansi-log false pretty_print_dump.nf | grep "DUMP" | sed 's/.*\] \[/\[/; a ---' | yq -y '.'

which gives:

- id: test
- samples:
    - - id: S1
      - path: /path/to/s1
    - - id: S2
      - path: /path/to/s2
    - - id: S3
      - path: /path/to/s3
---
- id: test
- samples:
    - - id: S1
      - path: /path/to/s1
    - - id: S2
      - path: /path/to/s2
    - - id: S3
      - path: /path/to/s3
--- null
...

( if you duplicate the channel entry in the script ).

mahesh-panchal avatar Aug 30 '22 09:08 mahesh-panchal

Another "native" way is using the (non-documented) optional renderer:

import static groovy.json.JsonOutput.toJson
import static groovy.json.JsonOutput.prettyPrint


workflow {
    Channel.of( 
        [ 
            id: 'test', 
            samples: [ 
                [ id: 'S1', path: '/path/to/s1' ], 
                [ id: 'S2', path: '/path/to/s2' ], 
                [ id: 'S3', path: '/path/to/s3' ] 
            ] 
        ]
    ).dump(tag: 'map', {
	prettyPrint(toJson(it))
    })
}
$ nextflow run -dump-channels -ansi-log false pretty.nf 
N E X T F L O W  ~  version 22.04.5
Launching `pretty.nf` [maniac_babbage] DSL2 - revision: 9c1c991204
[DUMP: map] {
    "id": "test",
    "samples": [
        {
            "id": "S1",
            "path": "/path/to/s1"
        },
        {
            "id": "S2",
            "path": "/path/to/s2"
        },
        {
            "id": "S3",
            "path": "/path/to/s3"
        }
    ]
}

jorgeaguileraseqera avatar Aug 30 '22 16:08 jorgeaguileraseqera

Love this! Exactly what I was looking for 😄

matthdsm avatar Aug 31 '22 07:08 matthdsm

This does throw a StackOverflowError for me though

matthdsm avatar Aug 31 '22 08:08 matthdsm

Which version of Nextflow are you using? This works for me.

% nextflow run -dump-channels -ansi-log false main.nf 
N E X T F L O W  ~  version 22.04.4
Launching `main.nf` [gigantic_euler] DSL2 - revision: aaeaf0677a
[DUMP: map] {
    "id": "test",
    "samples": [
        {
            "id": "S1",
            "path": "/path/to/s1"
        },
        {
            "id": "S2",
            "path": "/path/to/s2"
        },
        {
            "id": "S3",
            "path": "/path/to/s3"
        }
    ]
}

mahesh-panchal avatar Aug 31 '22 08:08 mahesh-panchal

N E X T F L O W ~ version 22.04.5

matthdsm avatar Aug 31 '22 08:08 matthdsm

I tried to pretty print the following

[DUMP: fastp_trimmed_reads] [['id':'test2', 'samplename':'test2', 'organism':'Sars covid2', 'single_end':false, 'readgroup':['ID':'HK3MMAFX2', 'PU':'HK3MMAFX2', 'PL':'ILLUMINA', 'SM':'test2', 'LB':'test2']], [/Users/matdsmet/Projects/nf-cmgg-preprocessing/work/05/e50b035759d1b21e282b00066c7991/test2_1.fastp.fastq.gz, /Users/matdsmet/Projects/nf-cmgg-preprocessing/work/05/e50b035759d1b21e282b00066c7991/test2_2.fastp.fastq.gz]]

matthdsm avatar Aug 31 '22 08:08 matthdsm

What's your code, command-line, and what's the stacktrace in the Nextflow log?

mahesh-panchal avatar Aug 31 '22 08:08 mahesh-panchal

code:

FASTP.out.reads.dump(tag: "fastp_trimmed_reads")

cmd:

nextflow run ./main.nf -profile docker,test --outdir ~/Downloads/nexflow -dump-channels -resume -ansi-log false
stacktrace:
aug.-31 10:19:34.966 [Actor Thread 6] ERROR nextflow.extension.DataflowHelper - @unknown
java.lang.StackOverflowError: null
	at java.base/java.nio.file.Path$1.hasNext(Path.java:923)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:388)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
	at groovy.json.DefaultJsonGenerator.writeIterator(DefaultJsonGenerator.java:396)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:202)
	at groovy.json.DefaultJsonGenerator.writeObject(DefaultJsonGenerator.java:164)
aug.-31 10:19:35.042 [Actor Thread 6] DEBUG nextflow.Session - Session aborted -- Cause: java.lang.StackOverflowError

Full workflow lives at https://github.com/CenterForMedicalGeneticsGhent/nf-cmgg-preprocessing/blob/dev/workflows/cmgg-preprocessing.nf

matthdsm avatar Aug 31 '22 08:08 matthdsm

AFAIK, Tuples aren't supported by toJSON https://docs.groovy-lang.org/latest/html/gapi/index.html?groovy/json/JsonBuilder.html

matthdsm avatar Aug 31 '22 09:08 matthdsm

I'm wondering if this is something to with some Path objects implementing the List interface.

mahesh-panchal avatar Aug 31 '22 09:08 mahesh-panchal

It's definitely to do with the Path objects.

import static groovy.json.JsonOutput.toJson
import static groovy.json.JsonOutput.prettyPrint

workflow {
    Channel.of( 
        [ 
            [ 
                id: 'test', 
                samples: [ 
                    [ id: 'S1', path: file('/path/to/s1') ], 
                    [ id: 'S2', path: file('/path/to/s2') ], 
                    [ id: 'S3', path: file('/path/to/s3') ] 
                ] 
            ],
            [ "A", "B" ]
        ]
    ).dump(tag: 'map', {
        prettyPrint(toJson(it))
    })
}

and

% nextflow run -dump-channels -ansi-log false main.nf
N E X T F L O W  ~  version 22.04.4
Launching `main.nf` [tender_sax] DSL2 - revision: fc9b9faa1a
Unexpected error [StackOverflowError]

Reproduces the error.

mahesh-panchal avatar Aug 31 '22 09:08 mahesh-panchal

Yep, was just going to say the same thing. I'm seeing this here too. When I only print the first part of the tuple (the meta map) it works fine

matthdsm avatar Aug 31 '22 09:08 matthdsm

I'm no groovy whiz whatsoever, but could we do something along the lines of

map.findAll{e -> 
    e instanceof file 
    return e.toString()
}

matthdsm avatar Aug 31 '22 09:08 matthdsm

I think you would need something to traverse the nested structure to convert Path instances. Sadly converting the entire nested structure to string and using JsonSlurper.parseText doesn't work since it's unable to parse the characters correctly to whether they're keys, etc.

import static groovy.json.JsonOutput.toJson
import static groovy.json.JsonOutput.prettyPrint
import groovy.json.JsonSlurper

workflow {
    Channel.of( 
        [ [ 
            id: 'test', 
            samples: [ 
                [ id: 'S1', path: file('/path/to/s1') ], 
                [ id: 'S2', path: file('/path/to/s2') ], 
                [ id: 'S3', path: file('/path/to/s3') ] 
            ] 
        ],
        [ "A", "B" ]
        ]
    ).dump(tag: 'map', {
        prettyPrint(toJson(new JsonSlurper().parseText(it.toString())))
    })
}
% nextflow run -dump-channels -ansi-log false main.nf
N E X T F L O W  ~  version 22.04.4
Launching `main.nf` [stupefied_meucci] DSL2 - revision: 85ee4cb0d7

Unable to determine the current character, it is not a string, number, array, or object

The current character read is 'i' with an int value of 105
Unable to determine the current character, it is not a string, number, array, or object
line number 1
index number 2
[[id:test, samples:[[id:S1, path:/path/to/s1], [id:S2, path:/path/to/s2], [id:S3, path:/path/to/s3]]], [A, B]]
..^

 -- Check script 'main.nf' at line: 18 or see '.nextflow.log' file for more details

mahesh-panchal avatar Aug 31 '22 09:08 mahesh-panchal

yes, in this case we need to traverse the structure (and it's easy but not immediate)

Inspired by this stack overflow https://stackoverflow.com/questions/51488434/how-to-iterate-through-all-values-of-a-nested-map-in-groovy we can have something as this:

import java.nio.file.Path
import static groovy.json.JsonOutput.toJson
import static groovy.json.JsonOutput.prettyPrint
import groovy.json.*


def replacePath(root, replaceNullWith = "") {
    if (root instanceof List) {
        root.collect {
            if (it instanceof Map) {
                replacePath(it, replaceNullWith)
            } else if (it instanceof List) {
                replacePath(it, replaceNullWith)
            } else if (it == null) {
                replaceNullWith
            } else if (it instanceof Path) {
                it.toString()
            } else {
                it
            }
        }
    } else if (root instanceof Map) {
        root.each {
            if (it.value instanceof Map) {
                replacePath(it.value, replaceNullWith)
            } else if (it.value instanceof List) {
                it.value = replacePath(it.value, replaceNullWith)
            } else if (it.value == null) {
                it.value = replaceNullWith
            } else if (it.value instanceof Path) {
                it.value = it.value.toString()
            }
        }
    }
}

workflow {
    Channel.of(
        [         
            [ 
                id: 'test', 
                samples: [ 
                    [ id: 'S1', path: file('/path/to/s1') ], 
                    [ id: 'S2', path: file('/path/to/s2') ], 
                    [ id: 'S3', path: file('/path/to/s3') ]
                ] 
            ],
            [ "A", "B" ]
        ]
    ).dump(tag: 'map', {
        def map = replacePath(it)
        prettyPrint(toJson(map))        
    })
}

p.d. probably it's better to have this function in another file and import it

jorgeaguileraseqera avatar Aug 31 '22 12:08 jorgeaguileraseqera

Can confirm this works!

[DUMP: fastp_trimmed_reads] [
    {
        "id": "test2",
        "samplename": "test2",
        "organism": "Sars covid2",
        "single_end": false,
        "readgroup": {
            "ID": "HK3MMAFX2",
            "PU": "HK3MMAFX2",
            "PL": "ILLUMINA",
            "SM": "test2",
            "LB": "test2"
        }
    },
    [
        "/Users/matdsmet/Projects/nf-cmgg-preprocessing/work/13/d26f2354e9cb6846ea9c93a1f705d1/test2_1.fastp.fastq.gz",
        "/Users/matdsmet/Projects/nf-cmgg-preprocessing/work/13/d26f2354e9cb6846ea9c93a1f705d1/test2_2.fastp.fastq.gz"
    ]
]

Thanks Jorge! Do you suppose this is something that can be integrated in core nextflow? e.g, enable us to pretty print a dump by having channel.dump(tag: "test", pretty: true) or something?

matthdsm avatar Aug 31 '22 12:08 matthdsm

right now we are discussing about it:

https://github.com/nextflow-io/nextflow/pull/3163#discussion_r959527107

jorgeaguileraseqera avatar Aug 31 '22 12:08 jorgeaguileraseqera

I started using a JsonGenerator with a converter for this. Similar to https://github.com/nextflow-io/nextflow/pull/3163#issuecomment-1250856511

Midnighter avatar Sep 19 '22 10:09 Midnighter

Solved via 4218b299

pditommaso avatar Oct 02 '22 16:10 pditommaso