You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2003/01/03 20:32:53 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java
remm 2003/01/03 11:32:53
Modified: catalina/src/share/org/apache/catalina/servlets
DefaultServlet.java WebdavServlet.java
Log:
- Use the new FastHttpDateFormat.
- Remove the remaining formatters.
Revision Changes Path
1.4 +22 -35 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
Index: DefaultServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DefaultServlet.java 17 Dec 2002 20:06:49 -0000 1.3
+++ DefaultServlet.java 3 Jan 2003 19:32:52 -0000 1.4
@@ -92,6 +92,7 @@
import java.text.SimpleDateFormat;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletContext;
@@ -99,6 +100,7 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import javax.naming.NamingException;
import javax.naming.InitialContext;
import javax.naming.Context;
@@ -107,10 +109,13 @@
import javax.naming.directory.DirContext;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
+
+import org.apache.tomcat.util.http.FastHttpDateFormat;
+
import org.apache.naming.resources.Resource;
import org.apache.naming.resources.ResourceAttributes;
+
import org.apache.catalina.Globals;
-import org.apache.catalina.util.FastHttpDateFormat;
import org.apache.catalina.util.MD5Encoder;
import org.apache.catalina.util.RequestUtil;
import org.apache.catalina.util.ServerInfo;
@@ -183,18 +188,6 @@
/**
- * 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)
- };
-
-
- protected final static TimeZone gmtZone = TimeZone.getTimeZone("GMT");
-
- /**
* Array containing the safe characters set.
*/
protected static URLEncoder urlEncoder;
@@ -205,10 +198,6 @@
*/
// ----------------------------------------------------- Static Initializer
static {
- formats[0].setTimeZone(gmtZone);
- formats[1].setTimeZone(gmtZone);
- formats[2].setTimeZone(gmtZone);
-
urlEncoder = new URLEncoder();
urlEncoder.addSafeCharacter('-');
urlEncoder.addSafeCharacter('_');
@@ -1216,23 +1205,20 @@
// Checking If-Range
String headerValue = request.getHeader("If-Range");
+
if (headerValue != null) {
+ long headerValueTime = (-1L);
+ try {
+ headerValueTime = request.getDateHeader("If-Range");
+ } catch (Exception e) {
+ ;
+ }
+
String eTag = getETag(resourceInfo);
long lastModified = resourceInfo.date;
- Date date = null;
-
- // Parsing the HTTP Date
- for (int i = 0; (date == null) && (i < formats.length); i++) {
- try {
- date = formats[i].parse(headerValue);
- } catch (ParseException e) {
- ;
- }
- }
-
- if (date == null) {
+ if (headerValueTime == (-1L)) {
// If the ETag the client gave does not match the entity
// etag, then the entire entity is returned.
@@ -1244,7 +1230,7 @@
// If the timestamp of the entity the client got is older than
// the last modification date of the entity, the entire entity
// is returned.
- if (lastModified > (date.getTime() + 1000))
+ if (lastModified > (headerValueTime + 1000))
return null;
}
@@ -2289,8 +2275,9 @@
creationDate = tempDate.getTime();
tempDate = tempAttrs.getLastModifiedDate();
if (tempDate != null) {
- httpDate = FastHttpDateFormat.getDate(tempDate);
date = tempDate.getTime();
+ httpDate =
+ FastHttpDateFormat.formatDate(date, null);
} else {
httpDate = FastHttpDateFormat.getCurrentDate();
}
1.3 +21 -11 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
Index: WebdavServlet.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WebdavServlet.java 13 Aug 2002 20:45:02 -0000 1.2
+++ WebdavServlet.java 3 Jan 2003 19:32:52 -0000 1.3
@@ -89,11 +89,13 @@
import java.text.SimpleDateFormat;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Element;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
+
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletContext;
@@ -101,9 +103,11 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+
import javax.naming.NamingException;
import javax.naming.InitialContext;
import javax.naming.Context;
@@ -112,8 +116,12 @@
import javax.naming.directory.DirContext;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
+
+import org.apache.tomcat.util.http.FastHttpDateFormat;
+
import org.apache.naming.resources.Resource;
import org.apache.naming.resources.ResourceAttributes;
+
import org.apache.catalina.util.MD5Encoder;
import org.apache.catalina.util.StringManager;
import org.apache.catalina.util.XMLWriter;
@@ -2329,7 +2337,8 @@
generatedXML.writeProperty(null, "getcontentlanguage",
Locale.getDefault().toString());
generatedXML.writeProperty(null, "getlastmodified",
- formats[0].format(lock.creationDate));
+ FastHttpDateFormat.formatDate
+ (lock.creationDate.getTime(), null));
generatedXML.writeProperty
(null, "getcontentlength", String.valueOf(0));
generatedXML.writeProperty(null, "getcontenttype", "");
@@ -2439,7 +2448,8 @@
} else if (property.equals("getlastmodified")) {
generatedXML.writeProperty
(null, "getlastmodified",
- formats[0].format(lock.creationDate));
+ FastHttpDateFormat.formatDate
+ (lock.creationDate.getTime(), null));
} else if (property.equals("resourcetype")) {
generatedXML.writeElement(null, "resourcetype",
XMLWriter.OPENING);
@@ -2633,8 +2643,8 @@
result += "Scope:" + scope + "\n";
result += "Depth:" + depth + "\n";
result += "Owner:" + owner + "\n";
- result += "Expiration:" +
- formats[0].format(new Date(expiresAt)) + "\n";
+ result += "Expiration:"
+ + FastHttpDateFormat.formatDate(expiresAt, null) + "\n";
Enumeration tokensList = tokens.elements();
while (tokensList.hasMoreElements()) {
result += "Token:" + tokensList.nextElement() + "\n";
@@ -2815,8 +2825,8 @@
* moved to another location, but that future references should
* still use the original URI to access the resource.
*/
- public static final int SC_FOUND =
- HttpServletResponse.SC_FOUND;
+ public static final int SC_MOVED_TEMPORARILY =
+ HttpServletResponse.SC_MOVED_TEMPORARILY;
/**
@@ -2998,7 +3008,7 @@
addStatusCodeMap(SC_ACCEPTED, "Accepted");
addStatusCodeMap(SC_NO_CONTENT, "No Content");
addStatusCodeMap(SC_MOVED_PERMANENTLY, "Moved Permanently");
- addStatusCodeMap(SC_FOUND, "Moved Temporarily");
+ addStatusCodeMap(SC_MOVED_TEMPORARILY, "Moved Temporarily");
addStatusCodeMap(SC_NOT_MODIFIED, "Not Modified");
addStatusCodeMap(SC_BAD_REQUEST, "Bad Request");
addStatusCodeMap(SC_UNAUTHORIZED, "Unauthorized");
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>