+1

> On Jan 25, 2017, at 12:45 PM, Hannes Wallnöfer <hannes.wallnoe...@oracle.com> 
> wrote:
> 
> 
>> Am 25.01.2017 um 17:39 schrieb Attila Szegedi <szege...@gmail.com>:
>> 
>> Well, filterInternalObjects itself doesn’t change the method handle type. I 
>> guess what happens is that the delegate BeansLinker.getGuardedInvocation 
>> returned a handle that it already adapted to the call site type. But you’re 
>> right that the filterInternalObjects here was both redundant and harmful; 
>> BeanLinker calls it where necessary.
>> 
> 
> Yes, I realised that after I sent the message. I added a note to the issue as 
> well:
> 
> https://bugs.openjdk.java.net/browse/JDK-8172006?focusedCommentId=14044057&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14044057
> 
> Thanks a lot!
> 
> Hannes
> 
>> +1.
>> 
>> Glad you got to the bottom of this, it felt really scary how the original 
>> reproducer seemingly depended on the shape of not-yet-evaluated expressions 
>> (I completely forgot about shared scope…)
>> 
>> Attila.
>> 
>>> On 25 Jan 2017, at 17:32, Hannes Wallnöfer <hannes.wallnoe...@oracle.com> 
>>> wrote:
>>> 
>>> The problem is that the first invocation of filtertInternalObjects (that 
>>> happens closer to the target handle) changes the method handle’s parameter 
>>> type from java.util.List to java.lang.Object, so the outer 
>>> filtertInternalObjects invocation did not see the List target type.
>>> 
>>> Hannes
>>> 
>>>> Am 25.01.2017 um 17:21 schrieb Attila Szegedi <szege...@gmail.com>:
>>>> 
>>>> Oh, great. I was just starting at this for a bit (after I saw you updated 
>>>> the JIRA), and was definitely starting to suspect the 
>>>> filterInternalObjects call in NashornBeansLinker. It still worries me that 
>>>> filtering would add a script object mirror wrapper – the method handle’s 
>>>> parameter is typed as List, isn’t it? DefaultInternalObjectFilter should 
>>>> only operate on parameters declared as Object.
>>>> 
>>>> Attila.
>>>> 
>>>>> On 25 Jan 2017, at 17:05, Hannes Wallnöfer <hannes.wallnoe...@oracle.com> 
>>>>> wrote:
>>>>> 
>>>>> Please review:
>>>>> 
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8172006
>>>>> Webrev: http://cr.openjdk.java.net/~hannesw/8172006/webrev.00/
>>>>> 
>>>>> The final invocation of linkerServices.filterInternalObjects was 
>>>>> redundant, and in fact caused the argument to be converted to 
>>>>> ScripObjectMirror when the actual target type was java.util.List. As far 
>>>>> as I can tell, linkerServices.filterInternalObjects is called elsewhere 
>>>>> for all types of invocations. Existing tests pass, and I added a few more.
>>>>> 
>>>>> Thanks,
>>>>> Hannes
>>>> 
>>> 
>> 
> 

Reply via email to