[ http://jira.codehaus.org/browse/MJAR-50?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_116882 ]
Mike Laurie commented on MJAR-50: --------------------------------- A tab can be a legal value in a manifest, but when the XML's formatting was copied directly into the manifest, we ended up with a newline followed directly by a tab, which is not valid for a manifest. My suggestion to condense all whitespace was made purely because a manifest is bound to be laid out differently from an XML description (which is likely to have tab-based indents), so why not condense tabs while we're necessarily going about removing newlines? Not strictly necessary though - you're right, as long as continuation lines always start with a space (which they weren't) > "Invalid Header" in jar's Manifest (Specification-Title attribute) when tab > char in pom Description > --------------------------------------------------------------------------------------------------- > > Key: MJAR-50 > URL: http://jira.codehaus.org/browse/MJAR-50 > Project: Maven 2.x Jar Plugin > Issue Type: Bug > Affects Versions: 2.0 > Reporter: Mike Laurie > Priority: Trivial > > I typed a <description> element into my pom; the description spanned 2 lines, > and my text editor put a tab char at the beginning of the 2nd line. > The project built correctly, but another project depended on the resulting > jar. > The compilation of the depending project failed with "invalid header" on the > jar I'd just compiled. > When I looked at the jar's manifest, I saw the Specification-Title attribute > had the tab character still in it from the <description> element. > Replacing the tab with spaces in the pom solved the problem. > However, this was valid xml that caused a compilation problem, so I think > it's a minor bug with the jar production code. > Note that the full description is trimmed before going into the manifest, so > any > Easy to work around, but it would be nice if whitespace in the <description> > element were consolidated into spaces before copying to the manifest. > Doesn't need any fancy layout stuff - just any multiple instances of tabs, > spaces, lf or cr should be replaced by a single space. > Try (I haven't tried to compile this!): > {code} > public String consolidateWhitespace(String input){ > StringTokenizer st = new StringTokenizer(input); > StringBuffer rv = new StringBuffer(); > while (st.hasMoreTokens()){ > rv.append(st.nextToken() + (st.hasMoreTokens()?" ":"")); > } > return rv.toString(); > } > {code} -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira