You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2020/12/24 17:49:00 UTC
[jira] [Resolved] (GROOVY-9662) Groovy 3.0.5: Closure delegate is
not working properly
[ https://issues.apache.org/jira/browse/GROOVY-9662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles resolved GROOVY-9662.
---------------------------------
Resolution: Fixed
> Groovy 3.0.5: Closure delegate is not working properly
> ------------------------------------------------------
>
> Key: GROOVY-9662
> URL: https://issues.apache.org/jira/browse/GROOVY-9662
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 3.0.2, 3.0.3, 3.0.4, 3.0.5, 2.5.14
> Reporter: Puneet Behl
> Assignee: Eric Milles
> Priority: Major
> Fix For: 2.5.15, 3.0.8, 4.0.0-alpha-3
>
> Attachments: JsonViewWritableScript.groovy, StreamingJsonBuilder.java
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> In Grails Views, we are using closures to generate JSON using {{StreamingJsonBuilder}}. The HAL implementation for an entity now generates an incorrect JSON after updating to Groovy 3.
> Here is the problem code snipped from \{{grails.plugin.json.view.api.internal.DefaultHalViewHelper#links}}:
> {code:java}
> jsonDelegate.call(LINKS_ATTRIBUTE) {
> call(SELF_ATTRIBUTE) {
> call HREF_ATTRIBUTE, viewHelper.link(resource: object, method: HttpMethod.GET, absolute: true)
> call HREFLANG_ATTRIBUTE, locale.toString()
> call TYPE_ATTRIBUTE, contentType
> }
> Set<Link> links = getLinks(object)
> for (link in links) {
> call(link.rel) {
> call HREF_ATTRIBUTE, link.href
> call HREFLANG_ATTRIBUTE, link.hreflang?.toString() ?: locale.toString()
> def linkType = link.contentType
> if (linkType) {
> call TYPE_ATTRIBUTE, linkType
> }
> }
> }
> }
> {code}
>
> Although the `resolveStatergy` for the closures is `DELEGATE_FIRST` but I believe that is not working correctly because it works if I change the above to:
> {code:java}
> delegate.call (...
> {code}
>
> To reproduce the issue please checkout [https://github.com/grails/grails-views/commits/bugs/groovy-9962]
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)