You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by ar...@locus.apache.org on 2000/06/17 14:57:49 UTC
cvs commit: jakarta-ant/src/main/org/apache/tools/ant/taskdefs Tar.java Untar.java
arnout 00/06/17 05:57:49
Modified: src/main/org/apache/tools/ant/taskdefs Tar.java Untar.java
Log:
Fix for Tar-time
Submitted by: Stefan Bodewig <bo...@bost.de>
Revision Changes Path
1.2 +1 -1 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Tar.java
Index: Tar.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Tar.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Tar.java 2000/02/10 18:04:29 1.1
+++ Tar.java 2000/06/17 12:57:48 1.2
@@ -122,7 +122,7 @@
TarEntry te = new TarEntry(vPath);
te.setSize(file.length());
- te.setModTime(file.lastModified() / 1000);
+ te.setModTime(file.lastModified());
tOut.putNextEntry(te);
byte[] buffer = new byte[8 * 1024];
1.2 +35 -2 jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Untar.java
Index: Untar.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Untar.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Untar.java 2000/05/24 14:35:22 1.1
+++ Untar.java 2000/06/17 12:57:48 1.2
@@ -57,6 +57,9 @@
import org.apache.tools.ant.*;
import org.apache.tools.tar.*;
import java.io.*;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
/**
* Untar a file.
*
@@ -74,6 +77,23 @@
* @exception BuildException Thrown in unrecoverable error.
*/
public void execute() throws BuildException {
+
+ Method setLastModified = null;
+ Long[] times = null;
+ // 1.0 is ruled out anyway, so this ensures 1.2 or above
+ if (project.getJavaVersion() != Project.JAVA_1_1) {
+ try {
+ setLastModified =
+ java.io.File.class.getMethod("setLastModified",
+ new Class[] {Long.TYPE});
+
+ times = new Long[1];
+ } catch (Exception e) {
+ project.log("File.setLastModified(long) not found",
+ Project.MSG_VERBOSE);
+ }
+ }
+
try {
if (source == null) {
throw new BuildException("No source specified");
@@ -115,8 +135,21 @@
fos.close();
}
- } catch( FileNotFoundException ex ) {
- System.out.println("FileNotFoundException: " + te.getName() );
+
+ if (setLastModified != null) {
+ times[0] = new Long(te.getModTime().getTime());
+ try {
+ setLastModified.invoke(f, times);
+ } catch (Exception e) {
+ project.log("cannot invoke File.setLastModified(long)",
+ Project.MSG_VERBOSE);
+ setLastModified = null;
+ }
+ }
+
+ } catch(FileNotFoundException ex) {
+ project.log("FileNotFoundException: " + te.getName(),
+ Project.MSG_WARN);
}
}
} catch (IOException ioe) {