----- Original Message ----- From: "Vincent Massol" <[EMAIL PROTECTED]> To: "'Maven Developers List'" <[EMAIL PROTECTED]> Sent: Wednesday, April 21, 2004 4:14 PM Subject: RE: cvs commit: maven/src/java/org/apache/maven/util HttpUtils.java
> 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? Yes and no. In some case, UrlConnection download files that aren't modified. I'll think it's a problem with some JDKs. Before commit it, I tested my changes with some trace, and I saw that files was downloaded all the time even if the server (IBiblio in my tests) send last modified date. With this patch, I fix this two problems. > > 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] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
