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

2015-10-21 Thread Martin Kouba
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.
>
> 
> Mark 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  > 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
> eji...@apache.org 
> >
>
>
> ___
> weld-dev mailing list
> weld-dev@lists.jboss.org 
> https://lists.jboss.org/mailman/listinfo/weld-dev
>
>
> --
> Martin Kouba
> Software Engineer
> Red Hat, Czech Republic
>
>
>
>
> --
> Thanks
> Emily
> =
> Emily Jiang
> eji...@apache.org 

-- 
Martin Kouba
Software Engineer
Red Hat, Czech Republic
___
weld-dev mailing list
weld-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-dev


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

2015-10-21 Thread Emily Jiang
Thanks Martin!
The new final method on the Hashtable is

final boolean initHashSeedAsNeeded(int capacity)

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.


Mark Struberg

added a comment - 01/Oct/11 19:12

I now changed the checks to allow private final and public/protected static
final methods.


Thanks

Emily

On Wed, Oct 21, 2015 at 11:50 AM, Martin Kouba  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
>> eji...@apache.org 
>>
>>
>> ___
>> weld-dev mailing list
>> weld-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/weld-dev
>>
>>
> --
> Martin Kouba
> Software Engineer
> Red Hat, Czech Republic
>



-- 
Thanks
Emily
=
Emily Jiang
eji...@apache.org
___
weld-dev mailing list
weld-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-dev

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

2015-10-21 Thread Emily Jiang
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.

This issue was logged in CDI-527.

OpenWebBeans fixed this via the jira
(https://issues.apache.org/jira/browse/OWB-616).

Can Weld fix this in the 2.3 or 2.2 trunk?


-- 
Thanks
Emily
=
Emily Jiang
eji...@apache.org
___
weld-dev mailing list
weld-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-dev