DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=28419>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=28419

Jar task removes existing read-only destfile when permission is denied to 
overwrite

           Summary: Jar task removes existing read-only destfile when
                    permission is denied to overwrite
           Product: Ant
           Version: 1.6.1
          Platform: Sun
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Core tasks
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I've encountered an issue with the Jar task, evidenced by the
sequence contained in the sample build.xml content below:

===== BEGIN build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="bugdemo" name="Jar deletion bug demo">

        <target name="bugdemo">
                <echo message="Remove any existing jar file" />
                <delete file="bugdemo.jar" />
                <exec executable="/bin/ls">
                        <arg value="-la" />
                        <arg value="bugdemo.jar" />
                </exec>

                <echo message="Create a read-only jar file" />
                <touch file="fileone"/>
                <jar basedir="." includes="fileone" destfile="bugdemo.jar" />
                <chmod file="bugdemo.jar" perm="444" verbose="true" />
                <exec executable="/bin/ls">
                        <arg value="-la" />
                        <arg value="bugdemo.jar" />
                </exec>

                <echo message="Try to overwrite the read-only jar file" />
                <touch file="filetwo"/>
                <jar basedir="." includes="filetwo" destfile="bugdemo.jar" />

                <!-- This line not reached... -->

                <exec executable="/bin/ls">
                        <arg value="-la" /> 
                        <arg value="bugdemo.jar" />
                </exec>
        </target>
</project>
===== END build.xml

When executed, the above produces the following output:

=====  BEGIN OUTPUT
Buildfile: build.xml

bugdemo:
     [echo] Remove any existing jar file
     [exec] bugdemo.jar: No such file or directory


     [exec] Result: 2
     [echo] Create a read-only jar file
      [jar] Building jar: /home/mcumings/cvs/swie/Project/jaxb/bugdemo.jar


    [chmod] Applied chmod to 1 file and 0 directories.
     [exec] -r--r--r--   1 mcumings staff        418 Apr 15 14:08 bugdemo.jar


     [echo] Try to overwrite the read-only jar file
      [jar] Building jar: /home/mcumings/cvs/swie/Project/jaxb/bugdemo.jar

BUILD FAILED
/home/mcumings/cvs/swie/Project/jaxb/build.xml:23: Problem creating jar: 
/home/mcumings/cvs/swie/Project/jaxb/bugdemo.jar (Permission denied)

    Total time: 6 seconds
=====  END OUTPUT

The problem lies in the fact that in the process of failing, the Jar
task seems to like to remove the read-only jar file target, as evidenced
in the following output of 'ls -la':

===== BEGIN OUTPUT
total 25
drwxr-xr-x   2 user staff         512 Apr 15 14:08 ./
drwxr-xr-x  33 user staff        1024 Apr 14 12:22 ../
-rw-r--r--   1 user staff         907 Apr 15 14:07 build.xml
-rw-r--r--   1 user staff           0 Apr 15 14:08 fileone
-rw-r--r--   1 user staff           0 Apr 15 14:08 filetwo
===== END OUTPUT

My use of Ant in this case is a bit out of the ordinary, but read/write
permissions setup by the operating system should be observed and handled
properly within Ant.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to