Hi Emmanuel, That's cool. Would it be possible to add some comments to explain why this additional check is required?
Is it to support web servers that do not support ifModifiedSince HTTP headers? Thanks -Vincent > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: 21 April 2004 15:54 > To: [EMAIL PROTECTED] > Subject: cvs commit: maven/src/java/org/apache/maven/util HttpUtils.java > > evenisse 2004/04/21 06:53:53 > > Modified: src/java/org/apache/maven/util Tag: MAVEN-1_0-BRANCH > HttpUtils.java > Log: > Fix MAVEN-1226. Snapshot is download only if the remote version is more > recent than local version. > > Revision Changes Path > No revision > No revision > 1.28.4.6 +13 -8 maven/src/java/org/apache/maven/util/HttpUtils.java > > Index: HttpUtils.java > =================================================================== > RCS file: > /home/cvs/maven/src/java/org/apache/maven/util/HttpUtils.java,v > retrieving revision 1.28.4.5 > retrieving revision 1.28.4.6 > diff -u -r1.28.4.5 -r1.28.4.6 > --- HttpUtils.java 15 Apr 2004 06:05:51 -0000 1.28.4.5 > +++ HttpUtils.java 21 Apr 2004 13:53:53 -0000 1.28.4.6 > @@ -28,7 +28,6 @@ > import java.net.PasswordAuthentication; > import java.net.URL; > import java.net.URLConnection; > -import java.util.Date; > > /** > * Http utils for retrieving files. > @@ -170,10 +169,10 @@ > throws IOException > { > //set the timestamp to the file date. > - Date timestamp = null; > + long timestamp = -1; > if ( useTimestamp && destinationFile.exists() ) > { > - timestamp = new Date( destinationFile.lastModified() ); > + timestamp = destinationFile.lastModified(); > } > > try > @@ -201,7 +200,7 @@ > * @param url the URL of the file to retrieve > * @param destinationFile where to store it > * @param timestamp if provided, the remote URL is only retrieved > if it was > - * modified more recently than timestamp. Otherwise, null indicates > that > + * modified more recently than timestamp. Otherwise, negative value > indicates that > * the remote URL should be retrieved unconditionally. > * @param proxyHost Proxy Host (if proxy is required), or null > * @param proxyPort Proxy Port (if proxy is required), or null > @@ -213,7 +212,7 @@ > */ > public static void getFile( String url, > File destinationFile, > - Date timestamp, > + long timestamp, > String proxyHost, > String proxyPort, > String proxyUserName, > @@ -234,9 +233,9 @@ > URLConnection connection = source.openConnection(); > > //modify the headers > - if ( timestamp != null ) > + if ( timestamp >= 0 ) > { > - connection.setIfModifiedSince( timestamp.getTime() ); > + connection.setIfModifiedSince( timestamp ); > } > // prepare Java 1.1 style credentials > if ( username != null || password != null ) > @@ -315,6 +314,12 @@ > throw isException; > } > > + if ( connection.getLastModified() <= timestamp && > + connection.getLastModified() != 0 ) > + { > + return; > + } > + > FileOutputStream fos = new FileOutputStream( destinationFile ); > > byte[] buffer = new byte[100 * 1024]; > @@ -333,7 +338,7 @@ > // if (and only if) the use file time option is set, then the > // saved file now has its timestamp set to that of the > downloaded > // file > - if ( timestamp != null ) > + if ( timestamp >= 0 ) > { > long remoteTimestamp = connection.getLastModified(); > if ( remoteTimestamp != 0 ) > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
