You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Pascal Schumacher (JIRA)" <ji...@apache.org> on 2015/06/04 21:17:39 UTC

[jira] [Updated] (GROOVY-7023) FactoryBuilderSupport#build method is being invoked directly without delegation to configured named factories

     [ https://issues.apache.org/jira/browse/GROOVY-7023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pascal Schumacher updated GROOVY-7023:
--------------------------------------
    Fix Version/s:     (was: 2.4.4)

> FactoryBuilderSupport#build method is being invoked directly without delegation to configured named factories
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-7023
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7023
>             Project: Groovy
>          Issue Type: Bug
>          Components: groovy-runtime
>    Affects Versions: 2.3.2
>         Environment: JDK 8, Windows
>            Reporter: Jakub Narloch
>            Priority: Blocker
>              Labels: breaking
>         Attachments: GROOVY-7023.zip, build.gradle
>
>
> I'm traying to track down this issue: http://forums.gradle.org/gradle/topics/after_upgrade_gradle_to_2_0_version_the_maven_pom_not_support_build_property
> Apparently the problem is caused by the fact that the FactoryBuilderSupport#build method is being called for the created closure, while in Groovy 1.8.6 the execution would be handled by the ClosureMetaClass:
> {code}
> if (method == null && (invokeOnOwner || invokeOnDelegate)) {
>                 try {
>                     if (ownerFirst) {
>                         return invokeOnDelegationObjects(invokeOnOwner, owner, invokeOnDelegate, delegate, methodName, arguments);
>                     } else {
>                         return invokeOnDelegationObjects(invokeOnDelegate, delegate, invokeOnOwner, owner, methodName, arguments);
>                     }
>                 } catch (MissingMethodException mme) {
>                     last = mme;
>                 }
>             }
> {code}
> But as you may see from the stack trace this does not happen in version 2.3.2.
> The method is being invoked directly without any processing through #invokeMethod.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)