On 2014-02-23 01:19, Alan Bateman wrote:
On 19/02/2014 18:22, Mikael Vidstedt wrote:
:

The documented grammar in the comment only mentions "SPACE" and the code below doesn't make any references to \t. As a matter of fact, it only checks for one single, mandatory SPACE after the colon (enforced at line 535-536) and doesn't care to remove any space characters at the end of the value. The while loop only deals with continuations. If additional spaces do exist they will as far as I can tell be part of the value. Are they trimmed later? I'm assuming it would be nice to have both parsers (parse_manifest & JarFacade) behave the same way?

Here's what it would look like to only check for space, but still eat any additional spaces which doesn't match what parse_manifest/parse_nv_pair does:

http://cr.openjdk.java.net/~mikael/webrevs/isspace/webrev.01/webrev/

Sorry for the delay getting back to you on this (I've been busy with other things).

I checked the JAR File Specification, which is turn references RFC 822 as the "inspiration" for the name-value pairs. The SPACE token is just ASCII SP. So I agree it's just ASCII SP that needs to be handled here, not LWSP-char which includes ASCII HT.

Looking at JDK-6274276 then the trimming was done to avoid hard-to-diagnose problems with leading/trailing spaces. It's possible that this is inconsistent with other areas where JAR file attributes are used. I would suggest leaving it as is for now as this is potentially changing behavior in several areas.

That sounds reasonable. I'll keep the webrev.01 approach - only check for and trim ASCII SP.

Thanks for the review!

Cheers,
Mikael

Reply via email to