Bug 51908

Summary: DEPLOYMENT ISSUE: Invalid Class-Path element within the 1.7 Jars.
Product: Batik - Now in Jira Reporter: daniel.kasmeroglu
Component: Test ToolsAssignee: Batik Developer's Mailing list <batik-dev>
Status: RESOLVED FIXED    
Severity: normal CC: rook
Priority: P2    
Version: 1.8   
Target Milestone: ---   
Hardware: PC   
OS: All   

Description daniel.kasmeroglu 2011-09-28 10:32:17 UTC
The Class-Path elements within the 1.7 distributions are incorrect according to the manifest specification located here:

   http://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest

Classpath entries are delimited by a backslash. If someone tries to use batik as a library module within netbeans he ends up with an "Illegal character in path at index 0: \" error message.

P.S: I'm sorry for the use of this component but I didn't found any better component.
Comment 1 Rook 2012-08-01 16:38:40 UTC
Hoping that this gets some attention soon.  Builds fail in Netbeans when attempting to use Batik as a module dependency in a project there.  That can affect a lot of users.
Comment 2 Rook 2012-08-01 18:37:33 UTC
From the MANIFEST:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 23.1-b03 (Oracle Corporation)
Implementation-Title: Batik
Implementation-Version: 1.8pre+r${svn-revision-number}
Implementation-Vendor: The Apache Software Foundation (http://xmlgraph
 ics.apache.org/batik/)
Build-Id: 20120801-111826-CDT (jjones [Windows 7 6.1 amd64, Java 1.7.0
 _05-b06])
Main-Class: org.apache.batik.apps.svgbrowser.Main
Class-Path: lib/batik-ext.jar \           lib/batik-dom.jar \         
   lib/batik-css.jar \           lib/batik-svg-dom.jar \           lib
 /batik-gvt.jar \           lib/batik-parser.jar \           lib/batik
 -script.jar \           lib/batik-bridge.jar \           lib/batik-sw
 ing.jar \           lib/batik-anim.jar \           lib/batik-transcod
 er.jar \           lib/batik-gui-util.jar \           lib/batik-awt-u
 til.jar \           lib/batik-codec.jar \           lib/batik-util.ja
 r \           lib/batik-root.jar \           lib/batik-svggen.jar \  
          lib/batik-xml.jar \           batik-squiggle.jar \          
  batik-rasterizer.jar \           batik-pp.jar \           lib/xerces
 _2_5_0.jar \           lib/xalan-2.6.0.jar \           lib/xml-apis.j
 ar \           lib/xml-apis-ext.jar \           lib/pdf-transcoder.ja
 r \           lib/js.jar
Comment 3 Rook 2012-08-01 18:51:26 UTC
Posting simple manual fix for those finding this same issue:

1.  Unpack the batik.jar, extracting the MANIFEST.MF file.
2.  Edit it to drop in the text below.
3.  Repack batik.jar.


Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.4.2_12-b03 (Sun Microsystems Inc.)
Implementation-Title: Batik
Implementation-Version: 1.7+r608262
Implementation-Vendor: The Apache Software Foundation (http://xmlgraphics.apache.org/batik/)
Build-Id: 20080106-111140-EST (cam [Linux 2.6.22.8 i386, Java 1.4.2_12-b03])
Main-Class: org.apache.batik.apps.svgbrowser.Main
Class-Path: lib/batik-ext.jar lib/batik-dom.jar lib/batik-css.jar lib/batik-svg-dom.jar lib/batik-gvt.jar  lib/batik-parser.jar  lib/batik-script.jar  lib/batik-bridge.jar  lib/batik-swing.jar  lib/batik-anim.jar  lib/batik-transcoder.jar lib/batik-gui-util.jar  lib/batik-awt-util.jar  lib/batik-codec.jar  lib/batik-util.jar  lib/batik-root.jar  lib/batik-svggen.jar lib/batik-xml.jar  batik-squiggle.jar batik-rasterizer.jar batik-pp.jar lib/xerces_2_5_0.jar lib/xalan-2.6.0.jar lib/xml-apis.jar lib/xml-apis-ext.jar lib/pdf-transcoder.jar  lib/js.jar
Comment 4 Helder Magalhães 2012-08-05 23:19:37 UTC
According to the referred documentation, "URLs are separated by one or more spaces". The implementation seemed to point towards that but, the backslashes which were meant to escape the newline (often used in programming code) were being interpreted verbatim...

Fixed in r1369701.

Thank you for reporting and for providing useful information towards the fix!