nacho       01/03/24 13:33:53

  Modified:    src/share/org/apache/tomcat/modules/generators
                        StaticInterceptor.java
  Log:
  tuneup If-Modified-Since honoring 3.3 style..
  
  MessageBytes has inside all the needed RFC dates parsing things..
  
  Revision  Changes    Path
  1.10      +5 -21     
jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/StaticInterceptor.java
  
  Index: StaticInterceptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/generators/StaticInterceptor.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- StaticInterceptor.java    2001/03/24 19:56:06     1.9
  +++ StaticInterceptor.java    2001/03/24 21:33:53     1.10
  @@ -62,6 +62,7 @@
   import org.apache.tomcat.util.res.StringManager;
   import org.apache.tomcat.util.io.FileUtil;
   import org.apache.tomcat.util.http.*;
  +import org.apache.tomcat.util.buf.*;
   import java.io.*;
   import java.net.*;
   import java.text.*;
  @@ -240,14 +241,6 @@
   final class FileHandler extends Handler  {
       int realFileNote;
       Context context;
  -    /**
  -     * The set of SimpleDateFormat formats to use in getDateHeader().
  -     */
  -    protected static final SimpleDateFormat formats[] = {
  -     new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US),
  -     new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz", Locale.US),
  -     new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy", Locale.US)
  -    };
   
       FileHandler() {
        //      setOrigin( Handler.ORIGIN_INTERNAL );
  @@ -291,22 +284,13 @@
        }
   
        File file = new File( absPath );
  -        String headerValue=req.getHeader("If-Modified-Since");
  -        if (headerValue != null) {
  +        MessageBytes imsMB=req.getMimeHeaders().getValue("If-Modified-Since");
   
  -            Date date = null;
  +        if (imsMB != null) {
   
  -            // Parsing the HTTP Date
  -            for (int i = 0; (date == null) && (i < formats.length); i++) {
  -                try {
  -                    date = formats[i].parse(headerValue);
  -                } catch (ParseException e) {
  -                    ;
  -                }
  -            }
  +            long date = imsMB.getTime();
   
  -            if ((date != null)
  -                && (file.lastModified() <= (date.getTime() + 1000)) ) {
  +            if ((file.lastModified() <= (date + 1000)) ) {
                   // The entity has not been modified since the date
                   // specified by the client. This is not an error case.
                   context.getContextManager().handleStatus( req, res, 304);
  
  
  

Reply via email to