ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From andbin <abi...@cheapnet.it>
Subject Strange behaviour of <manifestclasspath>
Date Tue, 14 Oct 2008 20:46:37 GMT
Hello, I have found a strange behaviour of <manifestclasspath>, a new  
task of Ant 1.7.

This is the scenario, 2 directories containing the following files:

C:\Test\MyProject\
    app.jar
    build.xml
    file1.jar

C:\Test\MyProject\lib\
    file2.jar

(size and content of jars doesn't matter for this test)

The build.xml contains this:

<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Manifest classpath test">
   <path id="initial.path">
     <pathelement location="${basedir}/file1.jar"/>
     <pathelement location="${basedir}/lib/file2.jar"/>
     <pathelement location="${basedir}"/>
   </path>

   <property name="path.string" refid="initial.path"/>
   <echo message="initial.path = ${path.string}"/>

   <manifestclasspath property="manifest.classpath"  
jarfile="${basedir}/app.jar">
     <classpath refid="initial.path"/>
   </manifestclasspath>

   <echo message="manifest.classpath = ${manifest.classpath}"/>
</project>


The execution:
- - - - - - - - - - - - - - - - - - -
C:\Test\MyProject>ant
Buildfile: build.xml
      [echo] initial.path =  
C:\Test\MyProject\file1.jar;C:\Test\MyProject\lib\file2.jar;C:\Test\MyProject
      [echo] manifest.classpath = file1.jar lib/file2.jar ../MyProject/

BUILD SUCCESSFUL
Total time: 0 seconds
- - - - - - - - - - - - - - - - - - -

The three relative paths generated by <manifestclasspath> are all  
technically correct. But the last is very little useful!!
It's not useful and not practical to go "up" and then go "down" in MyProject.
According to me, the relative path should be generated as . or ./  
since it's the most logical.


But there is another thing more strange. Instead to put MyProject in  
C:\Test, try to put it in C:\ (move MyProject in C:\).

- - - - - - - - - - - - - - - - - - -
C:\MyProject>ant
Buildfile: build.xml
      [echo] initial.path =  
C:\MyProject\file1.jar;C:\MyProject\lib\file2.jar;C:\MyProject

BUILD FAILED
java.lang.NullPointerException
         at java.lang.String.startsWith(String.java:1422)
         at java.lang.String.startsWith(String.java:1451)
         at  
org.apache.tools.ant.taskdefs.ManifestClassPath.execute(ManifestClassPath.java:100)
         at  
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at  
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at  
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
         ....more....
- - - - - - - - - - - - - - - - - - -

Tested on various Windows 2000 machines with

Apache Ant version 1.7.1 compiled on June 27 2008

and

java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)


IMHO, it's a bug this last exception but also the go up and down in  
the path ../MyProject/ of the first test.
Do you agree?


Andrea - Software/Web Developer
SCJP 5 (91%)

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message