Hello there,

I have a very specific question about some ant code, I hope this is the
correct place to post it.

I have been using part of the ant project to unGzip and unBzip2 files as
I wanted a Java way of doing this and I stumbled across the ant classes
that implement this.

Anyway I was experiencing a curious behavior of the classes
org.apache.tools.ant.taskdefs.GUnzip and
org.apache.tools.ant.taskdefs.BUnzip2. When the extract method is called
with files I was receiving from a Webserver nothing was happening. Upon
further investigation I noticed that my files were failing the check:

 

if (source.lastModified() > dest.lastModified()) {

 

It turned out that my source file had a lastModified =  0, so before
calling the extract method I would manually ensure that the modified
fields of the source and dest files were correct to pass this check.

 I was wondering though, what is the purpose or use case for this check?
And also, would it not be nice to have an exception thrown or some
logging when an extract is not attempted due to this check evaluating as
false? From looking at the code I cannot understand what the need is for
this check and furthermore why it should ever pass (if I create a new
Dest file and I am using an unmodified source file then surely
dest.lastModified > source.lastModified), so I am very intrigued as to
why it is used. Any information on this would be much appreciated.

Finally I would like to say that I have found the ant tool very useful
for deploying complex java projects to Glassfish etc and apart from this
strange behavior, resulting from files that have their lastModified
fields set incorrectly, that the Untar/GUnzip/BUnzip2 classes work very
well indeed and have been an excellent solution to my problem.

Regards,

Dan.

 


-- 
Scanned by iCritical.

Reply via email to