The new webrev is http://cr.openjdk.java.net/~sdrach/8153213/webrev/index.html 
<http://cr.openjdk.java.net/~sdrach/8153213/webrev/index.html>
and the issue is https://bugs.openjdk.java.net/browse/JDK-8153213 
<https://bugs.openjdk.java.net/browse/JDK-8153213>

Now the value “true” followed by either ‘\r’ or ‘\n’ is the only acceptable 
value.

> On Apr 8, 2016, at 11:34 AM, Steve Drach <steve.dr...@oracle.com> wrote:
> 
> Okay, I’ll prepare a new webrev.  I think all we need to check for after 
> “true” is \r or \n.  If the manifest just ends without at least one of those, 
> it’s not a legal manifest.
> 
>> On Apr 8, 2016, at 11:25 AM, Claes Redestad <claes.redes...@oracle.com> 
>> wrote:
>> 
>> On 04/08/2016 07:54 PM, Steve Drach wrote:
>>>>>>> I’ve put up a new webrev that addresses the issue of having spaces 
>>>>>>> before (and after) the value “true” in the Multi-Release attribute.
>>>>>>> 
>>>>>> Is some or all of that really necessary? since the we can specify domain 
>>>>>> of values.
>>>>> I think it is.  The spec states that one can have an arbitrary amount of 
>>>>> leading/trailing spaces in the value part of the attribute.  Apparently 
>>>>> attribute values could also have “hidden” characters such as vertical tab 
>>>>> or nak for example.  I wish the spec was tighter here.  I’m merely 
>>>>> stating the the domain can be
>>>>> “ *TRUE *” for upper/lower case letters.
>>>>> 
>>>> AFAICT the so called “spec" says nothing about trimming white space from 
>>>> values and although not explicitly called out the actual value has to be 
>>>> what constitutes the character sequence for the “otherchar" definition 
>>>> (otherwise the continuation space and newline characters would also be 
>>>> part of the actual value and that makes no sense).
>>> No it doesn’t say you can trim white space, but if one doesn’t, then do we 
>>> accept “true”, “ true”, “  true”, etc.?
>>> 
>>>> So it seems you may have quite a bit of wiggle room here :-) and it’s up 
>>>> to each attribute definition to state what constitutes its domain of 
>>>> possible valid values based on “other char”.
>>> So, we can say *otherchar is upper/lower case “true” only?
>>> 
>>>> 
>>>>>> For example, the Sealed attribute can take on a value of “true” or 
>>>>>> “false” (case ignored), but there is no white space trimming.
>>>>> Well then “Sealed:   true” won’t work, but the spec says it should work.
>>>>> 
>>>> Where does the “spec” state that it should?
>>> It really comes down to the interpretation of otherchar.  If it can be 
>>> interpreted on an attribute by attribute basis then it’s not a problem.
>>> 
>>>> The value is literally the string “ true”, at least in one interpretation 
>>>> of the “spec” :-)
>>> I’m fine with that.  And we really should do something about the spec, it’s 
>>> too loose and ambiguous.
>>> 
>>>> I suspect it’s ok to go with finding “Multi-Release: true” (lower/upper 
>>>> case) as in your first patch, then check if it is terminated with a 
>>>> newline (and ignore the continuation case)
>>> Okay.  I’d like Claes to weigh in because he’s the one who brought it up.  
>>> He’s traveling today, so I don’t expect to hear from him soon.
>> 
>> Yeah, I'm guilty of raising the silly question of whether or not accepting 
>> untrimmed true is OK according to spec.
>> 
>> With a generous interpretation and the presence of prior art (Sealed) I 
>> think it's OK to go back to the first version of the patch (with the 
>> addition to check that Multi-Release: true is followed by a LF, CR or the 
>> end of the manifest) and add a similar note to the spec/notes that 
>> Multi-Release has the same value restrictions as Sealed.
>> 
>> Perhaps both cases should be clarified in the notes to say that 
>> leading/trailing whitespace is not accepted, since that isn't directly 
>> obvious to a casual reader.
>> 
>> Thanks!
>> 
>> /Claes
>> 
>>> 
>>>> Paul.
>>>> 
>>>> 
>>>>> I am fine without doing this nonsense, but I think we need to change the 
>>>>> spec to make it correct.  We could change the definition of "otherchar” 
>>>>> to something like this
>>>>> 
>>>>> otherchar:=ALPHA EXTALPHANUM*
>>>>> ALPHA:=[A-Z | a-z | _]
>>>>> EXTALPHANUM:=[ALPHA | 0-9 | SPACE]
>>>>> 
>>>>> Even this will still allow trailing spaces, so after matching TRUE we’d 
>>>>> need to make sure the next char is SPACE, \r, or \n.
>>>>> 
>>>>> Other ideas?
>>>>> 
>>>>>> Paul.
>>>>>> 
>>>>>>>> Hi,
>>>>>>>> Please review this simple fix to require that the jar manifest 
>>>>>>>> Multi-Release attribute has a value of “true" in order to be 
>>>>>>>> effective, i.e. to assert the jar is a multi-release jar.
>>>>>>>> issue: https://bugs.openjdk.java.net/browse/JDK-8153213 
>>>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8153213>
>>>>>>>> webrev: http://cr.openjdk.java.net/~sdrach/8153213/webrev/index.html 
>>>>>>>> <http://cr.openjdk.java.net/~sdrach/8153213/webrev/index.html>
>>>>>>>> Thanks
>>>>>>>> Steve
> 

Reply via email to