[foreign] RFR: Fix UndefinedLayoutException exception message

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Tue Jan 29 14:59:46 UTC 2019


Resolving references across interfaces is not expected to work reliably. 
This is the primary reason which sends us towards an extraction model 
that is library-centric, rather than header-centric, so that all 
references in a library should be self-contained.

As for your test, it seems like you can get the same exception simply by 
having a single struct interface whose layout has some dandling 
unresolved layout (e.g. an unresolved layout whose layout expression is 
not defined anywhere)?

Maurizio

On 28/01/2019 14:52, Jorn Vernee wrote:
> Ok, it took a while to find a good test case. I was seeing the 
> exception due to a cross-header layout reference, so that's also the 
> test case I added. It seems that that is currently the only realistic 
> use-case where this exception is being thrown. I believe not being 
> able to resolve cross-header layout references is a known issue as well?
>
> Updated webrev: 
> http://cr.openjdk.java.net/~jvernee/panama/webrevs/fixmessage/webrev.01/
>
> Jorn
>
> Jorn Vernee schreef op 2019-01-28 14:16:
>> Yes, I will do that. (wasn't sure if it was useful enough).
>>
>> Jorn
>>
>> Sundararajan Athijegannathan schreef op 2019-01-28 14:12:
>>> Is it possible to add a test with invalid (unresolvable) name
>>> reference in a layout descriptor and check the exception message?
>>>
>>> -Sundar
>>>
>>> On 28/01/19, 6:36 PM, Jorn Vernee wrote:
>>>> Hi,
>>>>
>>>> JDK-8217245 changed the syntax for Unresolved layouts from 
>>>> `$(Name)` to `${Name}`. This also means Unresolved now has a 
>>>> dedicated `layoutExpression` field instead of relying on the name 
>>>> annotation.
>>>>
>>>> LayoutResolver.UndefinedLayoutException is still using the name 
>>>> annotation in the exception message, which is now incorrect. This 
>>>> small patch fixes that, and changes it to use 
>>>> Unresolved::layoutExpression().
>>>>
>>>> Please review.
>>>>
>>>> Webrev: 
>>>> http://cr.openjdk.java.net/~jvernee/panama/webrevs/fixmessage/webrev.00/ 
>>>>
>>>>
>>>> Cheers,
>>>> Jorn


More information about the panama-dev mailing list