[weld-dev] javax.el.ExpressionFactory has final methods! CDI doesn't allow that

Martin Kouba mkouba at redhat.com
Wed Oct 21 07:38:21 EDT 2015


Dne 21.10.2015 v 13:20 Emily Jiang napsal(a):
> Thanks Martin!
> The new final method on the Hashtable is
>
> final boolean initHashSeedAsNeeded(int capacity)

I see. This package-private method was added in JDK7.

>
> The change went as part of the following bug fix:
>
> [1] http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8006593
>
> As for the OWB-616 jira, I did not look at the actual fix, but I assume
> the fix by the following comments. I might be wrong here.
>
> <https://issues.apache.org/jira/browse/OWB-616#>
> Mark Struberg
> <https://issues.apache.org/jira/secure/ViewProfile.jspa?name=struberg>
> added a comment - 01/Oct/11 19:12
>
> I now changed the checks to allow private final and public/protected
> static final methods.

Mark does not talk about non-static package-private methods, right? He 
talks about private final and public/protected static final => should 
work in Weld too.

If non-static package-private methods are allowed than the spec is 
violated. Unfortunately, it seems there's no tck test for this.

>
>
> Thanks
>
> Emily
>
>
> On Wed, Oct 21, 2015 at 11:50 AM, Martin Kouba <mkouba at redhat.com
> <mailto:mkouba at redhat.com>> wrote:
>
>     Hi Emily,
>
>     commments inline.
>
>     Dne 21.10.2015 v 11:02 Emily Jiang napsal(a):
>
>         CDI specification does not allow proxying a class with
>         non-private final
>         methods. The java.util.Hashtable class has a
>         non-private final method added to the class in later versions
>         of Java, so a CDI application that previously worked may break
>         when updating the Java level.
>
>
>     Just for the record: what's the name of the method?
>
>
>         This issue was logged in CDI-527.
>
>         OpenWebBeans fixed this via the jira
>         (https://issues.apache.org/jira/browse/OWB-616).
>
>
>     OWB-616 does not fix CDI-527 but CDI-159, i.e. a private final
>     method does not cause a deployment problem. This works in Weld too.
>     On the other hand, CDI-527 is still an open issue so we can't simply
>     fix it. In theory, we could add a new feature of a non-portable
>     mode. But non-portable mode is not intended to be commonly used.
>     It's kind of a workaround.
>
>
>         Can Weld fix this in the 2.3 or 2.2 trunk?
>
>
>         --
>         Thanks
>         Emily
>         =================
>         Emily Jiang
>         ejiang at apache.org <mailto:ejiang at apache.org>
>         <mailto:ejiang at apache.org <mailto:ejiang at apache.org>>
>
>
>         _______________________________________________
>         weld-dev mailing list
>         weld-dev at lists.jboss.org <mailto:weld-dev at lists.jboss.org>
>         https://lists.jboss.org/mailman/listinfo/weld-dev
>
>
>     --
>     Martin Kouba
>     Software Engineer
>     Red Hat, Czech Republic
>
>
>
>
> --
> Thanks
> Emily
> =================
> Emily Jiang
> ejiang at apache.org <mailto:ejiang at apache.org>

-- 
Martin Kouba
Software Engineer
Red Hat, Czech Republic


More information about the weld-dev mailing list