Author: remy.maucherat(a)jboss.com
Date: 2009-04-08 08:34:27 -0400 (Wed, 08 Apr 2009)
New Revision: 995
Modified:
trunk/build.xml
trunk/dist.xml
trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java
trunk/java/org/apache/catalina/core/StandardWrapperValve.java
trunk/java/org/apache/catalina/manager/Constants.java
trunk/java/org/apache/catalina/manager/ManagerServlet.java
trunk/java/org/apache/catalina/manager/host/Constants.java
trunk/java/org/apache/catalina/servlets/WebdavServlet.java
trunk/java/org/apache/catalina/valves/AccessLogValve.java
trunk/java/org/apache/naming/resources/FileDirContext.java
trunk/java/org/apache/tomcat/util/http/MimeMap.java
trunk/java/org/apache/tomcat/util/res/StringManager.java
trunk/webapps/docs/changelog.xml
Log:
- Port various very minor patches from Tomcat.
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2009-04-08 03:30:04 UTC (rev 994)
+++ trunk/build.xml 2009-04-08 12:34:27 UTC (rev 995)
@@ -82,6 +82,7 @@
<mkdir dir="${tomcat.build}/bin"/>
<mkdir dir="${tomcat.build}/conf"/>
<mkdir dir="${tomcat.build}/lib"/>
+ <mkdir dir="${tomcat.build}/logs"/>
<mkdir dir="${tomcat.build}/temp"/>
<mkdir dir="${tomcat.build}/webapps"/>
Modified: trunk/dist.xml
===================================================================
--- trunk/dist.xml 2009-04-08 03:30:04 UTC (rev 994)
+++ trunk/dist.xml 2009-04-08 12:34:27 UTC (rev 995)
@@ -533,7 +533,7 @@
<!-- Packages the source code distribution in tar.gz format -->
<target name="package-src-tgz">
<fixcrlf srcdir="${tomcat.dist}/src"
-
excludes="**/*.jar,**/*.gif,**/*.bmp,**/*.jpg,**/*.ico,**/*.war,**/*.exe.**/*.pdf,**/*.bin,**/*.dia"
eol="lf"/>
+
excludes="**/*.jar,**/*.gif,**/*.bmp,**/*.jpg,**/*.ico,**/*.war,**/*.exe,**/*.pdf,**/*.bin,**/*.dia"
eol="lf"/>
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/src/${final-src.name}.tar.gz">
<tarfileset dir="${tomcat.dist}/src"
prefix="${final-src.name}" />
Modified: trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java
===================================================================
--- trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java 2009-04-08 03:30:04
UTC (rev 994)
+++ trunk/java/org/apache/catalina/core/ApplicationFilterFactory.java 2009-04-08 12:34:27
UTC (rev 995)
@@ -389,7 +389,6 @@
* matches the dispatcher types specified in the FilterMap
*/
private boolean matchDispatcher(FilterMap filterMap, int dispatcher) {
- // FIXME: add async
switch (dispatcher) {
case FORWARD : {
if (filterMap.getDispatcherMapping() == FilterMap.FORWARD ||
Modified: trunk/java/org/apache/catalina/core/StandardWrapperValve.java
===================================================================
--- trunk/java/org/apache/catalina/core/StandardWrapperValve.java 2009-04-08 03:30:04 UTC
(rev 994)
+++ trunk/java/org/apache/catalina/core/StandardWrapperValve.java 2009-04-08 12:34:27 UTC
(rev 995)
@@ -440,7 +440,7 @@
ApplicationDispatcher dispatcher =
(ApplicationDispatcher)
servletContext.getRequestDispatcher(asyncContext.getPath());
// FIXME: Add an async method to Application dispatcher
- // Invoke the dispatcher
+ // Invoke the dispatcher async method with the attributes flag
asyncContext.getUseAttributes();
} else {
// FIXME: should not happen
Modified: trunk/java/org/apache/catalina/manager/Constants.java
===================================================================
--- trunk/java/org/apache/catalina/manager/Constants.java 2009-04-08 03:30:04 UTC (rev
994)
+++ trunk/java/org/apache/catalina/manager/Constants.java 2009-04-08 12:34:27 UTC (rev
995)
@@ -111,7 +111,7 @@
"<?xml version=\"1.0\"
encoding=\""+CHARSET+"\"?>";
public static final String XML_STYLE =
- "<?xml-stylesheet type=\"text/xsl\"
href=\"/manager/xform.xsl\" ?>";
+ "<?xml-stylesheet type=\"text/xsl\"
href=\"xform.xsl\" ?>";
}
Modified: trunk/java/org/apache/catalina/manager/ManagerServlet.java
===================================================================
--- trunk/java/org/apache/catalina/manager/ManagerServlet.java 2009-04-08 03:30:04 UTC
(rev 994)
+++ trunk/java/org/apache/catalina/manager/ManagerServlet.java 2009-04-08 12:34:27 UTC
(rev 995)
@@ -852,10 +852,10 @@
Container[] contexts = host.findChildren();
for (int i = 0; i < contexts.length; i++) {
Context context = (Context) contexts[i];
- String displayPath = context.getPath();
- if( displayPath.equals("") )
- displayPath = "/";
if (context != null ) {
+ String displayPath = context.getPath();
+ if( displayPath.equals("") )
+ displayPath = "/";
if (context.getAvailable()) {
writer.println(sm.getString("managerServlet.listitem",
displayPath,
Modified: trunk/java/org/apache/catalina/manager/host/Constants.java
===================================================================
--- trunk/java/org/apache/catalina/manager/host/Constants.java 2009-04-08 03:30:04 UTC
(rev 994)
+++ trunk/java/org/apache/catalina/manager/host/Constants.java 2009-04-08 12:34:27 UTC
(rev 995)
@@ -98,12 +98,5 @@
public static final String CHARSET="utf-8";
- // FIXME need we this?
- public static final String XML_DECLARATION =
- "<?xml version=\"1.0\"
encoding=\""+CHARSET+"\"?>";
-
- public static final String XML_STYLE =
- "<?xml-stylesheet type=\"text/xsl\"
href=\"/manager/xform.xsl\" ?>";
-
}
Modified: trunk/java/org/apache/catalina/servlets/WebdavServlet.java
===================================================================
--- trunk/java/org/apache/catalina/servlets/WebdavServlet.java 2009-04-08 03:30:04 UTC
(rev 994)
+++ trunk/java/org/apache/catalina/servlets/WebdavServlet.java 2009-04-08 12:34:27 UTC
(rev 995)
@@ -19,6 +19,7 @@
package org.apache.catalina.servlets;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
@@ -463,7 +464,7 @@
Node propNode = null;
- if (req.getInputStream().available() > 0) {
+ if (req.getContentLength() > 0) {
DocumentBuilder documentBuilder = getDocumentBuilder();
try {
@@ -494,9 +495,11 @@
}
}
} catch (SAXException e) {
- // Something went wrong - use the defaults.
+ // Something went wrong - bad request
+ resp.sendError(WebdavStatus.SC_BAD_REQUEST);
} catch (IOException e) {
- // Something went wrong - use the defaults.
+ // Something went wrong - bad request
+ resp.sendError(WebdavStatus.SC_BAD_REQUEST);
}
}
@@ -1662,14 +1665,20 @@
path, destinationPath);
if ((!result) || (!errorList.isEmpty())) {
-
- sendReport(req, resp, errorList);
+ if (errorList.size() == 1) {
+ resp.sendError(errorList.elements().nextElement().intValue());
+ } else {
+ sendReport(req, resp, errorList);
+ }
return false;
-
}
// Copy was successful
- resp.setStatus(WebdavStatus.SC_CREATED);
+ if (exists) {
+ resp.setStatus(WebdavStatus.SC_NO_CONTENT);
+ } else {
+ resp.setStatus(WebdavStatus.SC_CREATED);
+ }
// Removing any lock-null resource which would be present at
// the destination path
@@ -1707,8 +1716,7 @@
try {
resources.createSubcontext(dest);
} catch (NamingException e) {
- errorList.put
- (dest, new Integer(WebdavStatus.SC_CONFLICT));
+ errorList.put(dest, WebdavStatus.SC_CONFLICT);
return false;
}
@@ -1728,8 +1736,7 @@
copyResource(resources, errorList, childSrc, childDest);
}
} catch (NamingException e) {
- errorList.put
- (dest, new Integer(WebdavStatus.SC_INTERNAL_SERVER_ERROR));
+ errorList.put(dest, WebdavStatus.SC_INTERNAL_SERVER_ERROR);
return false;
}
@@ -1739,15 +1746,17 @@
try {
resources.bind(dest, object);
} catch (NamingException e) {
- errorList.put
- (source,
- new Integer(WebdavStatus.SC_INTERNAL_SERVER_ERROR));
+ if (e.getCause() instanceof FileNotFoundException) {
+ // We know the source exists so it must be the
+ // destination dir that can't be found
+ errorList.put(source, WebdavStatus.SC_CONFLICT);
+ } else {
+ errorList.put(source, WebdavStatus.SC_INTERNAL_SERVER_ERROR);
+ }
return false;
}
} else {
- errorList.put
- (source,
- new Integer(WebdavStatus.SC_INTERNAL_SERVER_ERROR));
+ errorList.put(source, WebdavStatus.SC_INTERNAL_SERVER_ERROR);
return false;
}
Modified: trunk/java/org/apache/catalina/valves/AccessLogValve.java
===================================================================
--- trunk/java/org/apache/catalina/valves/AccessLogValve.java 2009-04-08 03:30:04 UTC (rev
994)
+++ trunk/java/org/apache/catalina/valves/AccessLogValve.java 2009-04-08 12:34:27 UTC (rev
995)
@@ -856,8 +856,7 @@
// Initialize the timeZone, Date formatters, and currentDate
timezone = TimeZone.getDefault();
timeZoneNoDST = calculateTimeZoneOffset(timezone.getRawOffset());
- Calendar calendar = Calendar.getInstance(timezone);
- int offset = calendar.get(Calendar.DST_OFFSET);
+ int offset = timezone.getDSTSavings();
timeZoneDST = calculateTimeZoneOffset(timezone.getRawOffset() + offset);
if (fileDateFormat == null || fileDateFormat.length() == 0)
Modified: trunk/java/org/apache/naming/resources/FileDirContext.java
===================================================================
--- trunk/java/org/apache/naming/resources/FileDirContext.java 2009-04-08 03:30:04 UTC
(rev 994)
+++ trunk/java/org/apache/naming/resources/FileDirContext.java 2009-04-08 12:34:27 UTC
(rev 995)
@@ -581,8 +581,10 @@
is.close();
}
} catch (IOException e) {
- throw new NamingException
+ NamingException ne = new NamingException
(sm.getString("resources.bindFailed", e));
+ ne.initCause(e);
+ throw ne;
}
}
Modified: trunk/java/org/apache/tomcat/util/http/MimeMap.java
===================================================================
--- trunk/java/org/apache/tomcat/util/http/MimeMap.java 2009-04-08 03:30:04 UTC (rev 994)
+++ trunk/java/org/apache/tomcat/util/http/MimeMap.java 2009-04-08 12:34:27 UTC (rev 995)
@@ -32,9 +32,10 @@
// Defaults - all of them are "well-known" types,
// you can add using normal web.xml.
- public static Hashtable defaultMap=new Hashtable(101);
+ public static Hashtable<String,String> defaultMap=new
Hashtable<String,String>(101);
static {
defaultMap.put("txt", "text/plain");
+ defaultMap.put("css", "text/css");
defaultMap.put("html","text/html");
defaultMap.put("htm", "text/html");
defaultMap.put("gif", "image/gif");
@@ -143,6 +144,10 @@
return map.keys();
}
+ public String getMimeType(String ext) {
+ return getContentTypeFor(ext);
+ }
+
public String getContentType(String extn) {
String type = (String)map.get(extn.toLowerCase());
if( type == null ) type=(String)defaultMap.get( extn );
Modified: trunk/java/org/apache/tomcat/util/res/StringManager.java
===================================================================
--- trunk/java/org/apache/tomcat/util/res/StringManager.java 2009-04-08 03:30:04 UTC (rev
994)
+++ trunk/java/org/apache/tomcat/util/res/StringManager.java 2009-04-08 12:34:27 UTC (rev
995)
@@ -130,108 +130,17 @@
* @param key
* @param args
*/
-
- public String getString(String key, Object[] args) {
- String iString = null;
+ public String getString(final String key, final Object... args) {
String value = getString(key);
-
- // this check for the runtime exception is some pre 1.1.6
- // VM's don't do an automatic toString() on the passed in
- // objects and barf out
-
- try {
- // ensure the arguments are not null so pre 1.2 VM's don't barf
- if(args==null){
- args = new Object[1];
- }
-
- Object[] nonNullArgs = args;
- for (int i=0; i<args.length; i++) {
- if (args[i] == null) {
- if (nonNullArgs==args){
- nonNullArgs=(Object[])args.clone();
- }
- nonNullArgs[i] = "null";
- }
- }
- if( value==null ) value=key;
- MessageFormat mf = new MessageFormat(value);
- mf.setLocale(locale);
- iString = mf.format(nonNullArgs, new StringBuffer(), null).toString();
- } catch (IllegalArgumentException iae) {
- StringBuffer buf = new StringBuffer();
- buf.append(value);
- for (int i = 0; i < args.length; i++) {
- buf.append(" arg[" + i + "]=" + args[i]);
- }
- iString = buf.toString();
+ if (value == null) {
+ value = key;
}
- return iString;
- }
- /**
- * Get a string from the underlying resource bundle and format it
- * with the given object argument. This argument can of course be
- * a String object.
- *
- * @param key
- * @param arg
- */
-
- public String getString(String key, Object arg) {
- Object[] args = new Object[] {arg};
- return getString(key, args);
+ MessageFormat mf = new MessageFormat(value);
+ mf.setLocale(locale);
+ return mf.format(args, new StringBuffer(), null).toString();
}
-
- /**
- * Get a string from the underlying resource bundle and format it
- * with the given object arguments. These arguments can of course
- * be String objects.
- *
- * @param key
- * @param arg1
- * @param arg2
- */
-
- public String getString(String key, Object arg1, Object arg2) {
- Object[] args = new Object[] {arg1, arg2};
- return getString(key, args);
- }
- /**
- * Get a string from the underlying resource bundle and format it
- * with the given object arguments. These arguments can of course
- * be String objects.
- *
- * @param key
- * @param arg1
- * @param arg2
- * @param arg3
- */
-
- public String getString(String key, Object arg1, Object arg2,
- Object arg3) {
- Object[] args = new Object[] {arg1, arg2, arg3};
- return getString(key, args);
- }
-
- /**
- * Get a string from the underlying resource bundle and format it
- * with the given object arguments. These arguments can of course
- * be String objects.
- *
- * @param key
- * @param arg1
- * @param arg2
- * @param arg3
- * @param arg4
- */
-
- public String getString(String key, Object arg1, Object arg2,
- Object arg3, Object arg4) {
- Object[] args = new Object[] {arg1, arg2, arg3, arg4};
- return getString(key, args);
- }
// --------------------------------------------------------------
// STATIC SUPPORT METHODS
// --------------------------------------------------------------
Modified: trunk/webapps/docs/changelog.xml
===================================================================
--- trunk/webapps/docs/changelog.xml 2009-04-08 03:30:04 UTC (rev 994)
+++ trunk/webapps/docs/changelog.xml 2009-04-08 12:34:27 UTC (rev 995)
@@ -48,8 +48,14 @@
Move InstanceManager and PeriodicEventListener to org.apache.tomcat. (markt)
</update>
<fix>
- Wrong MKCOL status code for errors. (markt)
+ <bug>46982</bug>: Use DST offset not current offset in the access log
valve. (markt)
</fix>
+ <fix>
+ Various WebDAV test suite failures. (markt)
+ </fix>
+ <fix>
+ <bug>46933</bug>: Simplify StringManager using Java 5 features. Based
on a patch by Jens Kapitza. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">