Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Trivial
-
Resolution: Fixed
-
Affects Version/s: 2.0
-
Fix Version/s: 2.2
-
Component/s: None
-
Labels:None
-
Number of attachments :
Description
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!):
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(); }
Issue Links
- depends upon
-
PLX-185
Archiver does not handle manifest entries with linefeeds correctly
-
Sorry - in the middle of that description, I meant to say:
"Note that the full description is trimmed before going into the manifest (I think), so any leading or trailing tabs don't seem recreate the problem."