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

Emily Jiang emijiang6 at googlemail.com
Wed Oct 21 07:54:20 EDT 2015


doh. You were right that the OWB-616 was for a different issue rather than
the one I am interested.

Do you have any suggestions about working around the unproxiable Hashtable
issue?

On Wed, Oct 21, 2015 at 12:38 PM, Martin Kouba <mkouba at redhat.com> wrote:

> 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
>



-- 
Thanks
Emily
=================
Emily Jiang
ejiang at apache.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/weld-dev/attachments/20151021/b86e4039/attachment-0001.html 


More information about the weld-dev mailing list