On Wed, Jul 3, 2013 at 11:09 AM, Emond Papegaaij <[email protected]
> wrote:

> Hi all,
>
> The changes made for WICKET-5226 (no longer injecting anonymous inner
> classes) breaks our applications badly, and I suspect we are not the only
> one. The following pattern is quite common:
>
> add(new Link<Void>("rest") {
>         @Inject
>         private AccountRestResourceClient accountClient;
>

Nothing wrong with this code but this is the first time I see this pattern.


>
>         @Override
>         public void onClick() {....}
> }
>
> In Wicket 6.9.0, this no longer works: accountClient will not get injected
> because the Link is an anonymous inner class. To make things worse, even
> in concrete classes, you can't rely on injection to work, because someone
> could subclass your class as an anonymous inner class and injection will
> again not work.
>
> This change was made because Weld 2.0 throws an exception when trying
> to create an InjectionTarget for anonymous classes. This will be reduced to
> a log-warning in 2.0.2: https://issues.jboss.org/browse/WELD-1441


https://issues.jboss.org/browse/WFLY-1378?focusedCommentId=12776674&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12776674
talks
about wrongusage of BeanManager.createInjectionTarget() in wicket-cdi.


>
>
> As there is no workaround for this problem and it is likely to break all
> applications using wicket-cdi, I'm starting a vote to revert the changes
> made for 5226 and release 6.9.1:
>
> [ x ] Yes, revert 5226 and release 6.9.1
>

wicket-cdi-1.1 also does this + some more blacklisting. Any reviews are
welcome!


> [ ] No, revert 5226 but not release 6.9.1
> [ ] No, keep as is
>
> See WICKET-5264
>
> Best regards,
> Emond
>

Reply via email to