Issue 64: Multiple perms on precondition where one is DISP_FIELDS results in missing permission
Status:  Verified
Owner:
Closed:  May 2009
Project Member Reported by nels.bec...@gmail.com, May 13, 2009
I have a case where multiple permissions for the receiver are on the pre-
condition of a method. 

One of them is a DISP_FIELDS permission. This is causing the OTHER 
permission to be dropped somehow. In the case where virtual == current, it 
is never created in the createEntryValue method. 

Here is the permission:
@Full(requires="OPEN", guarantee="PROTOCOL", returned=false)
@Share(guarantee="STRUCTURE", use=Use.DISP_FIELDS)

In the virtual == current case, no permission is created for the PROTOCOL 
dimension, but a "virtual frame" one is created for the STRUCTURE 
dimension. There should be a "virtual frame" permission for both 
dimensions.

Kevin suggests looking in the permission gathering code. For example, MultiCaseBindingSignature.
May 13, 2009
Project Member #1 nels.bec...@gmail.com
Created test,  Issue64  test, which identifies this bug.
May 13, 2009
Project Member #2 nels.bec...@gmail.com
Relevant code seems to be found in AbstractBindingSignature.prePostFromAnnotations.

Changing the needFrame initializer to the following:
boolean needFrame = (a.isFramePermission() && !frameAsVirtual) 
    || (ignoreVirtual && a.isVirtualPermission());

seems to work, although I have not yet cleared this with Kevin.
May 18, 2009
Project Member #3 nels.bec...@gmail.com
Fixed in r304.
Status: Verified