Author: markt Date: Thu Oct 14 15:06:48 2010 New Revision: 1022570 URL: http://svn.apache.org/viewvc?rev=1022570&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49428 Add a work-around for the known namespace issues for some Microsoft WebDAV clients. Based on the patch provided by Panagiotis Astithas.
Modified: tomcat/tc6.0.x/trunk/ (props changed) tomcat/tc6.0.x/trunk/STATUS.txt tomcat/tc6.0.x/trunk/java/org/apache/catalina/servlets/WebdavServlet.java tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Propchange: tomcat/tc6.0.x/trunk/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Oct 14 15:06:48 2010 @@ -1 +1 @@ -/tomcat/trunk:601180,606992,612607,630314,640888,652744,653247,666232,673796,673820,677910,683969,683982,684001,684081,684234,684269-684270,685177,687503,687645,689402,690781,691392,691805,692748,693378,694992,695053,695311,696780,696782,698012,698227,698236,698613,699427,699634,701355,709294,709811,709816,710063,710066,710125,710205,711126,711600,712461,712467,713953,714002,718360,719119,719124,719602,719626,719628,720046,720069,721040,721286,721708,721886,723404,723738,726052,727303,728032,728768,728947,729057,729567,729569,729571,729681,729809,729815,729934,730250,730590,731651,732859,732863,734734,740675,740684,742677,742697,742714,744160,744238,746321,746384,746425,747834,747863,748344,750258,750291,750921,751286-751287,751289,751295,752323,753039,757335,757774,758249,758365,758596,758616,758664,759074,761601,762868,762929,762936-762937,763166,763183,763193,763228,763262,763298,763302,763325,763599,763611,763654,763681,763706,764985,764997,765662,768335,769979,770716,77 0809,770876,772872,776921,776924,776935,776945,777464,777466,777576,777625,778379,778523-778524,781528,781779,782145,782791,783316,783696,783724,783756,783762,783766,783863,783934,784453,784602,784614,785381,785688,785768,785859,786468,786487,786490,786496,786667,787627,787770,787985,789389,790405,791041,791184,791194,791224,791243,791326,791328,791789,792740,793372,793757,793882,793981,794082,794673,794822,795043,795152,795210,795457,795466,797168,797425,797596,797607,802727,802940,804462,804544,804734,805153,809131,809603,810916,810977,812125,812137,812432,813001,813013,813866,814180,814708,814876,815972,816252,817442,817822,819339,819361,820110,820132,820874,820954,821397,828196,828201,828210,828225,828759,830378-830379,830999,831106,831774,831785,831828,831850,831860,832214,832218,833121,833545,834047,835036,835336,836405,881396,881412,883130,883134,883146,883165,883177,883362,883565,884341,885038,885231,885241,885260,885901,885991,886019,888072,889363,889606,889716,8901 39,890265,890349-890350,890417,891185-891187,891583,892198,892341,892415,892464,892555,892812,892814,892817,892843,892887,893321,893493,894580,894586,894805,894831,895013,895045,895057,895191,895392,895703,896370,896384,897380-897381,897776,898126,898256,898468,898527,898555,898558,898718,898836,898906,899284,899348,899420,899653,899769-899770,899783,899788,899792,899916,899918-899919,899935,899949,903916,905020,905151,905722,905728,905735,907311,907513,907538,907652,907819,907825,907864,908002,908721,908754,908759,909097,909206,909212,909525,909636,909869,909875,909887,910266,910370,910442,910471,910485,910974,915226,915737,915861,916097,916141,916157,916170,917598,917633,918093,918489,918594,918684,918787,918792,918799,918803,918885,919851,919914,920025,920055,920298,920449,920596,920824,920840,921444,922010,926716,927062,927621,928482,928695,928732,928798,931709,932357,932967,935105,935983,939491,939551,940064,941356,941463,944409,944416,945231,945808,945835,945841,946686 ,948057,950164,950596,950614,950851,950905,951615,953434,954435,955648,955655,956832,957130,957830,958192,960701,963868,964614,966177-966178,966292,966692,981815,991837,993042,1001955,1002185,1002263,1002349,1002359,1002362,1002481,1002514,1003481,1003488,1003556,1003572,1003581,1003861,1005452,1005467,1005647,1022134 +/tomcat/trunk:601180,606992,612607,630314,640888,652744,653247,666232,673796,673820,677910,683969,683982,684001,684081,684234,684269-684270,685177,687503,687645,689402,690781,691392,691805,692748,693378,694992,695053,695311,696780,696782,698012,698227,698236,698613,699427,699634,701355,709294,709811,709816,710063,710066,710125,710205,711126,711600,712461,712467,713953,714002,718360,719119,719124,719602,719626,719628,720046,720069,721040,721286,721708,721886,723404,723738,726052,727303,728032,728768,728947,729057,729567,729569,729571,729681,729809,729815,729934,730250,730590,731651,732859,732863,734734,740675,740684,742677,742697,742714,744160,744238,746321,746384,746425,747834,747863,748344,750258,750291,750921,751286-751287,751289,751295,752323,753039,757335,757774,758249,758365,758596,758616,758664,759074,761601,762868,762929,762936-762937,763166,763183,763193,763228,763262,763298,763302,763325,763599,763611,763654,763681,763706,764985,764997,765662,768335,769979,770716,77 0809,770876,772872,776921,776924,776935,776945,777464,777466,777576,777625,778379,778523-778524,781528,781779,782145,782791,783316,783696,783724,783756,783762,783766,783863,783934,784453,784602,784614,785381,785688,785768,785859,786468,786487,786490,786496,786667,787627,787770,787985,789389,790405,791041,791184,791194,791224,791243,791326,791328,791789,792740,793372,793757,793882,793981,794082,794673,794822,795043,795152,795210,795457,795466,797168,797425,797596,797607,802727,802940,804462,804544,804734,805153,809131,809603,810916,810977,812125,812137,812432,813001,813013,813866,814180,814708,814876,815972,816252,817442,817822,819339,819361,820110,820132,820874,820954,821397,828196,828201,828210,828225,828759,830378-830379,830999,831106,831774,831785,831828,831850,831860,832214,832218,833121,833545,834047,835036,835336,836405,881396,881412,883130,883134,883146,883165,883177,883362,883565,884341,885038,885231,885241,885260,885901,885991,886019,888072,889363,889606,889716,8901 39,890265,890349-890350,890417,891185-891187,891583,892198,892341,892415,892464,892555,892812,892814,892817,892843,892887,893321,893493,894580,894586,894805,894831,895013,895045,895057,895191,895392,895703,896370,896384,897380-897381,897776,898126,898256,898468,898527,898555,898558,898718,898836,898906,899284,899348,899420,899653,899769-899770,899783,899788,899792,899916,899918-899919,899935,899949,903916,905020,905151,905722,905728,905735,907311,907513,907538,907652,907819,907825,907864,908002,908721,908754,908759,909097,909206,909212,909525,909636,909869,909875,909887,910266,910370,910442,910471,910485,910974,915226,915737,915861,916097,916141,916157,916170,917598,917633,918093,918489,918594,918684,918787,918792,918799,918803,918885,919851,919914,920025,920055,920298,920449,920596,920824,920840,921444,922010,926716,927062,927621,928482,928695,928732,928798,931709,932357,932967,935105,935983,939491,939551,940064,941356,941463,944409,944416,945231,945808,945835,945841,946686 ,948057,950164,950596,950614,950851,950905,951615,953434,954435,955648,955655,956832,957130,957830,958192,960701,963868,964614,966177-966178,966292,966692,981815,991837,993042,1001955,1002185,1002263,1002349,1002359,1002362,1002481,1002514,1003481,1003488,1003556,1003572,1003581,1003861,1005452,1005467,1005647,1022120,1022134 Modified: tomcat/tc6.0.x/trunk/STATUS.txt URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1022570&r1=1022569&r2=1022570&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/STATUS.txt (original) +++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Oct 14 15:06:48 2010 @@ -251,13 +251,6 @@ PATCHES PROPOSED TO BACKPORT: - Do not remove "// Make sure no session ID is returned" comment. - Documentation update will be needed. -* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49428 - Add a work-around for the known namespace issues for some Microsoft WebDAV - clients. Based on the patch provided by Panagiotis Astithas. - http://svn.apache.org/viewvc?rev=1022120&view=rev - +1: kkolinko, markt, timw - -1: - * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=50072 NIO connector can mis-read request line if not sent in a single pacaket https://issues.apache.org/bugzilla/attachment.cgi?id=26173&action=edit Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/servlets/WebdavServlet.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/servlets/WebdavServlet.java?rev=1022570&r1=1022569&r2=1022570&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/servlets/WebdavServlet.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/servlets/WebdavServlet.java Thu Oct 14 15:06:48 2010 @@ -554,15 +554,13 @@ public class WebdavServlet XMLWriter generatedXML = new XMLWriter(resp.getWriter()); generatedXML.writeXMLHeader(); - generatedXML.writeElement - (null, "multistatus" - + generateNamespaceDeclarations(), - XMLWriter.OPENING); + generatedXML.writeElement("D", DEFAULT_NAMESPACE, + "multistatus", XMLWriter.OPENING); parseLockNullProperties (req, generatedXML, lockNullPath, type, properties); - generatedXML.writeElement(null, "multistatus", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "multistatus", + XMLWriter.CLOSING); generatedXML.sendData(); return; } @@ -584,9 +582,8 @@ public class WebdavServlet XMLWriter generatedXML = new XMLWriter(resp.getWriter()); generatedXML.writeXMLHeader(); - generatedXML.writeElement(null, "multistatus" - + generateNamespaceDeclarations(), - XMLWriter.OPENING); + generatedXML.writeElement("D", DEFAULT_NAMESPACE, "multistatus", + XMLWriter.OPENING); if (depth == 0) { parseProperties(req, generatedXML, path, type, @@ -664,8 +661,7 @@ public class WebdavServlet } } - generatedXML.writeElement(null, "multistatus", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "multistatus", XMLWriter.CLOSING); generatedXML.sendData(); @@ -1148,34 +1144,33 @@ public class WebdavServlet XMLWriter generatedXML = new XMLWriter(); generatedXML.writeXMLHeader(); - generatedXML.writeElement - (null, "multistatus" + generateNamespaceDeclarations(), - XMLWriter.OPENING); + generatedXML.writeElement("D", DEFAULT_NAMESPACE, + "multistatus", XMLWriter.OPENING); while (lockPathsList.hasMoreElements()) { - generatedXML.writeElement(null, "response", - XMLWriter.OPENING); - generatedXML.writeElement(null, "href", - XMLWriter.OPENING); - generatedXML - .writeText((String) lockPathsList.nextElement()); - generatedXML.writeElement(null, "href", - XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", - XMLWriter.OPENING); + generatedXML.writeElement("D", "response", + XMLWriter.OPENING); + generatedXML.writeElement("D", "href", + XMLWriter.OPENING); + generatedXML.writeText( + (String) lockPathsList.nextElement()); + generatedXML.writeElement("D", "href", + XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", + XMLWriter.OPENING); generatedXML .writeText("HTTP/1.1 " + WebdavStatus.SC_LOCKED + " " + WebdavStatus .getStatusText(WebdavStatus.SC_LOCKED)); - generatedXML.writeElement(null, "status", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", + XMLWriter.CLOSING); - generatedXML.writeElement(null, "response", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "response", + XMLWriter.CLOSING); } - generatedXML.writeElement(null, "multistatus", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "multistatus", + XMLWriter.CLOSING); Writer writer = resp.getWriter(); writer.write(generatedXML.toString()); @@ -1323,19 +1318,16 @@ public class WebdavServlet // the lock information XMLWriter generatedXML = new XMLWriter(); generatedXML.writeXMLHeader(); - generatedXML.writeElement(null, "prop" - + generateNamespaceDeclarations(), - XMLWriter.OPENING); + generatedXML.writeElement("D", DEFAULT_NAMESPACE, "prop", + XMLWriter.OPENING); - generatedXML.writeElement(null, "lockdiscovery", - XMLWriter.OPENING); + generatedXML.writeElement("D", "lockdiscovery", XMLWriter.OPENING); lock.toXML(generatedXML); - generatedXML.writeElement(null, "lockdiscovery", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "lockdiscovery", XMLWriter.CLOSING); - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); resp.setStatus(WebdavStatus.SC_OK); resp.setContentType("text/xml; charset=UTF-8"); @@ -1424,14 +1416,6 @@ public class WebdavServlet // -------------------------------------------------------- Private Methods /** - * Generate the namespace declarations. - */ - private String generateNamespaceDeclarations() { - return " xmlns=\"" + DEFAULT_NAMESPACE + "\""; - } - - - /** * Check to see if a resource is currently write locked. The method * will look at the "If" header to make sure the client * has give the appropriate lock tokens. @@ -1973,9 +1957,8 @@ public class WebdavServlet XMLWriter generatedXML = new XMLWriter(); generatedXML.writeXMLHeader(); - generatedXML.writeElement(null, "multistatus" - + generateNamespaceDeclarations(), - XMLWriter.OPENING); + generatedXML.writeElement("D", DEFAULT_NAMESPACE, "multistatus", + XMLWriter.OPENING); Enumeration pathList = errorList.keys(); while (pathList.hasMoreElements()) { @@ -1983,25 +1966,24 @@ public class WebdavServlet String errorPath = (String) pathList.nextElement(); int errorCode = ((Integer) errorList.get(errorPath)).intValue(); - generatedXML.writeElement(null, "response", XMLWriter.OPENING); + generatedXML.writeElement("D", "response", XMLWriter.OPENING); - generatedXML.writeElement(null, "href", XMLWriter.OPENING); + generatedXML.writeElement("D", "href", XMLWriter.OPENING); String toAppend = errorPath.substring(relativePath.length()); if (!toAppend.startsWith("/")) toAppend = "/" + toAppend; generatedXML.writeText(absoluteUri + toAppend); - generatedXML.writeElement(null, "href", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); - generatedXML - .writeText("HTTP/1.1 " + errorCode + " " - + WebdavStatus.getStatusText(errorCode)); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "href", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); + generatedXML.writeText("HTTP/1.1 " + errorCode + " " + + WebdavStatus.getStatusText(errorCode)); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "response", XMLWriter.CLOSING); + generatedXML.writeElement("D", "response", XMLWriter.CLOSING); } - generatedXML.writeElement(null, "multistatus", XMLWriter.CLOSING); + generatedXML.writeElement("D", "multistatus", XMLWriter.CLOSING); Writer writer = resp.getWriter(); writer.write(generatedXML.toString()); @@ -2039,13 +2021,13 @@ public class WebdavServlet return; } - generatedXML.writeElement(null, "response", XMLWriter.OPENING); + generatedXML.writeElement("D", "response", XMLWriter.OPENING); String status = new String("HTTP/1.1 " + WebdavStatus.SC_OK + " " + WebdavStatus.getStatusText (WebdavStatus.SC_OK)); // Generating href element - generatedXML.writeElement(null, "href", XMLWriter.OPENING); + generatedXML.writeElement("D", "href", XMLWriter.OPENING); String href = req.getContextPath() + req.getServletPath(); if ((href.endsWith("/")) && (path.startsWith("/"))) @@ -2057,7 +2039,7 @@ public class WebdavServlet generatedXML.writeText(rewriteUrl(href)); - generatedXML.writeElement(null, "href", XMLWriter.CLOSING); + generatedXML.writeElement("D", "href", XMLWriter.CLOSING); String resourceName = path; int lastSlash = path.lastIndexOf('/'); @@ -2068,98 +2050,93 @@ public class WebdavServlet case FIND_ALL_PROP : - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); - generatedXML.writeProperty - (null, "creationdate", - getISOCreationDate(cacheEntry.attributes.getCreation())); - generatedXML.writeElement(null, "displayname", XMLWriter.OPENING); + generatedXML.writeProperty("D", "creationdate", + getISOCreationDate(cacheEntry.attributes.getCreation())); + generatedXML.writeElement("D", "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); - generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING); + generatedXML.writeElement("D", "displayname", XMLWriter.CLOSING); if (cacheEntry.resource != null) { generatedXML.writeProperty - (null, "getlastmodified", FastHttpDateFormat.formatDate + ("D", "getlastmodified", FastHttpDateFormat.formatDate (cacheEntry.attributes.getLastModified(), null)); generatedXML.writeProperty - (null, "getcontentlength", + ("D", "getcontentlength", String.valueOf(cacheEntry.attributes.getContentLength())); String contentType = getServletContext().getMimeType (cacheEntry.name); if (contentType != null) { - generatedXML.writeProperty(null, "getcontenttype", - contentType); + generatedXML.writeProperty("D", "getcontenttype", + contentType); } - generatedXML.writeProperty(null, "getetag", - cacheEntry.attributes.getETag()); - generatedXML.writeElement(null, "resourcetype", - XMLWriter.NO_CONTENT); + generatedXML.writeProperty("D", "getetag", + cacheEntry.attributes.getETag()); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.NO_CONTENT); } else { - generatedXML.writeElement(null, "resourcetype", - XMLWriter.OPENING); - generatedXML.writeElement(null, "collection", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "resourcetype", - XMLWriter.CLOSING); - } - - generatedXML.writeProperty(null, "source", ""); - - String supportedLocks = "<lockentry>" - + "<lockscope><exclusive/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>" + "<lockentry>" - + "<lockscope><shared/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>"; - generatedXML.writeElement(null, "supportedlock", - XMLWriter.OPENING); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.OPENING); + generatedXML.writeElement("D", "collection", + XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.CLOSING); + } + + generatedXML.writeProperty("D", "source", ""); + + String supportedLocks = "<D:lockentry>" + + "<D:lockscope><D:exclusive/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>" + "<D:lockentry>" + + "<D:lockscope><D:shared/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>"; + generatedXML.writeElement("D", "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); - generatedXML.writeElement(null, "supportedlock", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "supportedlock", XMLWriter.CLOSING); generateLockDiscovery(path, generatedXML); - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); break; case FIND_PROPERTY_NAMES : - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); - generatedXML.writeElement(null, "creationdate", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "displayname", + generatedXML.writeElement("D", "creationdate", XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "displayname", XMLWriter.NO_CONTENT); if (cacheEntry.resource != null) { - generatedXML.writeElement(null, "getcontentlanguage", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getcontentlength", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getcontenttype", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getetag", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getlastmodified", - XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getcontentlanguage", + XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getcontentlength", + XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getcontenttype", + XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getetag", XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getlastmodified", + XMLWriter.NO_CONTENT); } - generatedXML.writeElement(null, "resourcetype", + generatedXML.writeElement("D", "resourcetype", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "source", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "lockdiscovery", + generatedXML.writeElement("D", "source", XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "lockdiscovery", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); break; @@ -2169,8 +2146,8 @@ public class WebdavServlet // Parse the list of properties - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); Enumeration<String> properties = propertiesVector.elements(); @@ -2180,19 +2157,19 @@ public class WebdavServlet if (property.equals("creationdate")) { generatedXML.writeProperty - (null, "creationdate", + ("D", "creationdate", getISOCreationDate(cacheEntry.attributes.getCreation())); } else if (property.equals("displayname")) { generatedXML.writeElement - (null, "displayname", XMLWriter.OPENING); + ("D", "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); generatedXML.writeElement - (null, "displayname", XMLWriter.CLOSING); + ("D", "displayname", XMLWriter.CLOSING); } else if (property.equals("getcontentlanguage")) { if (cacheEntry.context != null) { propertiesNotFound.addElement(property); } else { - generatedXML.writeElement(null, "getcontentlanguage", + generatedXML.writeElement("D", "getcontentlanguage", XMLWriter.NO_CONTENT); } } else if (property.equals("getcontentlength")) { @@ -2200,7 +2177,7 @@ public class WebdavServlet propertiesNotFound.addElement(property); } else { generatedXML.writeProperty - (null, "getcontentlength", + ("D", "getcontentlength", (String.valueOf(cacheEntry.attributes.getContentLength()))); } } else if (property.equals("getcontenttype")) { @@ -2208,7 +2185,7 @@ public class WebdavServlet propertiesNotFound.addElement(property); } else { generatedXML.writeProperty - (null, "getcontenttype", + ("D", "getcontenttype", getServletContext().getMimeType (cacheEntry.name)); } @@ -2217,43 +2194,43 @@ public class WebdavServlet propertiesNotFound.addElement(property); } else { generatedXML.writeProperty - (null, "getetag", cacheEntry.attributes.getETag()); + ("D", "getetag", cacheEntry.attributes.getETag()); } } else if (property.equals("getlastmodified")) { if (cacheEntry.context != null) { propertiesNotFound.addElement(property); } else { generatedXML.writeProperty - (null, "getlastmodified", FastHttpDateFormat.formatDate + ("D", "getlastmodified", FastHttpDateFormat.formatDate (cacheEntry.attributes.getLastModified(), null)); } } else if (property.equals("resourcetype")) { if (cacheEntry.context != null) { - generatedXML.writeElement(null, "resourcetype", - XMLWriter.OPENING); - generatedXML.writeElement(null, "collection", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "resourcetype", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.OPENING); + generatedXML.writeElement("D", "collection", + XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.CLOSING); } else { - generatedXML.writeElement(null, "resourcetype", - XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.NO_CONTENT); } } else if (property.equals("source")) { - generatedXML.writeProperty(null, "source", ""); + generatedXML.writeProperty("D", "source", ""); } else if (property.equals("supportedlock")) { - supportedLocks = "<lockentry>" - + "<lockscope><exclusive/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>" + "<lockentry>" - + "<lockscope><shared/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>"; - generatedXML.writeElement(null, "supportedlock", - XMLWriter.OPENING); + supportedLocks = "<D:lockentry>" + + "<D:lockscope><D:exclusive/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>" + "<D:lockentry>" + + "<D:lockscope><D:shared/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>"; + generatedXML.writeElement("D", "supportedlock", + XMLWriter.OPENING); generatedXML.writeText(supportedLocks); - generatedXML.writeElement(null, "supportedlock", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "supportedlock", + XMLWriter.CLOSING); } else if (property.equals("lockdiscovery")) { if (!generateLockDiscovery(path, generatedXML)) propertiesNotFound.addElement(property); @@ -2263,11 +2240,11 @@ public class WebdavServlet } - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); Enumeration propertiesNotFoundList = propertiesNotFound.elements(); @@ -2277,20 +2254,20 @@ public class WebdavServlet + " " + WebdavStatus.getStatusText (WebdavStatus.SC_NOT_FOUND)); - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); while (propertiesNotFoundList.hasMoreElements()) { generatedXML.writeElement - (null, (String) propertiesNotFoundList.nextElement(), + ("D", (String) propertiesNotFoundList.nextElement(), XMLWriter.NO_CONTENT); } - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); } @@ -2298,7 +2275,7 @@ public class WebdavServlet } - generatedXML.writeElement(null, "response", XMLWriter.CLOSING); + generatedXML.writeElement("D", "response", XMLWriter.CLOSING); } @@ -2330,13 +2307,13 @@ public class WebdavServlet if (lock == null) return; - generatedXML.writeElement(null, "response", XMLWriter.OPENING); + generatedXML.writeElement("D", "response", XMLWriter.OPENING); String status = new String("HTTP/1.1 " + WebdavStatus.SC_OK + " " + WebdavStatus.getStatusText (WebdavStatus.SC_OK)); // Generating href element - generatedXML.writeElement(null, "href", XMLWriter.OPENING); + generatedXML.writeElement("D", "href", XMLWriter.OPENING); String absoluteUri = req.getRequestURI(); String relativePath = getRelativePath(req); @@ -2347,7 +2324,7 @@ public class WebdavServlet generatedXML.writeText(rewriteUrl(RequestUtil.normalize( absoluteUri + toAppend))); - generatedXML.writeElement(null, "href", XMLWriter.CLOSING); + generatedXML.writeElement("D", "href", XMLWriter.CLOSING); String resourceName = path; int lastSlash = path.lastIndexOf('/'); @@ -2358,86 +2335,76 @@ public class WebdavServlet case FIND_ALL_PROP : - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); - generatedXML.writeProperty - (null, "creationdate", - getISOCreationDate(lock.creationDate.getTime())); - generatedXML.writeElement - (null, "displayname", XMLWriter.OPENING); + generatedXML.writeProperty("D", "creationdate", + getISOCreationDate(lock.creationDate.getTime())); + generatedXML.writeElement("D", "displayname", XMLWriter.OPENING); generatedXML.writeData(resourceName); - generatedXML.writeElement - (null, "displayname", XMLWriter.CLOSING); - generatedXML.writeProperty(null, "getlastmodified", + generatedXML.writeElement("D", "displayname", XMLWriter.CLOSING); + generatedXML.writeProperty("D", "getlastmodified", FastHttpDateFormat.formatDate (lock.creationDate.getTime(), null)); - generatedXML.writeProperty - (null, "getcontentlength", String.valueOf(0)); - generatedXML.writeProperty(null, "getcontenttype", ""); - generatedXML.writeProperty(null, "getetag", ""); - generatedXML.writeElement(null, "resourcetype", - XMLWriter.OPENING); - generatedXML.writeElement(null, "lock-null", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "resourcetype", - XMLWriter.CLOSING); - - generatedXML.writeProperty(null, "source", ""); - - String supportedLocks = "<lockentry>" - + "<lockscope><exclusive/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>" + "<lockentry>" - + "<lockscope><shared/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>"; - generatedXML.writeElement(null, "supportedlock", - XMLWriter.OPENING); + generatedXML.writeProperty("D", "getcontentlength", + String.valueOf(0)); + generatedXML.writeProperty("D", "getcontenttype", ""); + generatedXML.writeProperty("D", "getetag", ""); + generatedXML.writeElement("D", "resourcetype", XMLWriter.OPENING); + generatedXML.writeElement("D", "lock-null", XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "resourcetype", XMLWriter.CLOSING); + + generatedXML.writeProperty("D", "source", ""); + + String supportedLocks = "<D:lockentry>" + + "<D:lockscope><D:exclusive/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>" + "<D:lockentry>" + + "<D:lockscope><D:shared/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>"; + generatedXML.writeElement("D", "supportedlock", XMLWriter.OPENING); generatedXML.writeText(supportedLocks); - generatedXML.writeElement(null, "supportedlock", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "supportedlock", XMLWriter.CLOSING); generateLockDiscovery(path, generatedXML); - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); break; case FIND_PROPERTY_NAMES : - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); - generatedXML.writeElement(null, "creationdate", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "displayname", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getcontentlanguage", + generatedXML.writeElement("D", "creationdate", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getcontentlength", + generatedXML.writeElement("D", "displayname", XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getcontentlanguage", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getcontenttype", + generatedXML.writeElement("D", "getcontentlength", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getetag", + generatedXML.writeElement("D", "getcontenttype", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "getlastmodified", + generatedXML.writeElement("D", "getetag", XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getlastmodified", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "resourcetype", + generatedXML.writeElement("D", "resourcetype", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "source", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "lockdiscovery", + generatedXML.writeElement("D", "source", XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "lockdiscovery", XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); break; @@ -2447,8 +2414,8 @@ public class WebdavServlet // Parse the list of properties - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); Enumeration properties = propertiesVector.elements(); @@ -2457,53 +2424,51 @@ public class WebdavServlet String property = (String) properties.nextElement(); if (property.equals("creationdate")) { - generatedXML.writeProperty - (null, "creationdate", - getISOCreationDate(lock.creationDate.getTime())); + generatedXML.writeProperty("D", "creationdate", + getISOCreationDate(lock.creationDate.getTime())); } else if (property.equals("displayname")) { - generatedXML.writeElement - (null, "displayname", XMLWriter.OPENING); + generatedXML.writeElement("D", "displayname", + XMLWriter.OPENING); generatedXML.writeData(resourceName); - generatedXML.writeElement - (null, "displayname", XMLWriter.CLOSING); + generatedXML.writeElement("D", "displayname", + XMLWriter.CLOSING); } else if (property.equals("getcontentlanguage")) { - generatedXML.writeElement(null, "getcontentlanguage", - XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "getcontentlanguage", + XMLWriter.NO_CONTENT); } else if (property.equals("getcontentlength")) { - generatedXML.writeProperty - (null, "getcontentlength", (String.valueOf(0))); + generatedXML.writeProperty("D", "getcontentlength", + (String.valueOf(0))); } else if (property.equals("getcontenttype")) { - generatedXML.writeProperty - (null, "getcontenttype", ""); + generatedXML.writeProperty("D", "getcontenttype", ""); } else if (property.equals("getetag")) { - generatedXML.writeProperty(null, "getetag", ""); + generatedXML.writeProperty("D", "getetag", ""); } else if (property.equals("getlastmodified")) { generatedXML.writeProperty - (null, "getlastmodified", + ("D", "getlastmodified", FastHttpDateFormat.formatDate (lock.creationDate.getTime(), null)); } else if (property.equals("resourcetype")) { - generatedXML.writeElement(null, "resourcetype", - XMLWriter.OPENING); - generatedXML.writeElement(null, "lock-null", - XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "resourcetype", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.OPENING); + generatedXML.writeElement("D", "lock-null", + XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "resourcetype", + XMLWriter.CLOSING); } else if (property.equals("source")) { - generatedXML.writeProperty(null, "source", ""); + generatedXML.writeProperty("D", "source", ""); } else if (property.equals("supportedlock")) { - supportedLocks = "<lockentry>" - + "<lockscope><exclusive/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>" + "<lockentry>" - + "<lockscope><shared/></lockscope>" - + "<locktype><write/></locktype>" - + "</lockentry>"; - generatedXML.writeElement(null, "supportedlock", - XMLWriter.OPENING); + supportedLocks = "<D:lockentry>" + + "<D:lockscope><D:exclusive/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>" + "<D:lockentry>" + + "<D:lockscope><D:shared/></D:lockscope>" + + "<D:locktype><D:write/></D:locktype>" + + "</D:lockentry>"; + generatedXML.writeElement("D", "supportedlock", + XMLWriter.OPENING); generatedXML.writeText(supportedLocks); - generatedXML.writeElement(null, "supportedlock", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "supportedlock", + XMLWriter.CLOSING); } else if (property.equals("lockdiscovery")) { if (!generateLockDiscovery(path, generatedXML)) propertiesNotFound.addElement(property); @@ -2513,11 +2478,11 @@ public class WebdavServlet } - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); Enumeration propertiesNotFoundList = propertiesNotFound.elements(); @@ -2527,20 +2492,20 @@ public class WebdavServlet + " " + WebdavStatus.getStatusText (WebdavStatus.SC_NOT_FOUND)); - generatedXML.writeElement(null, "propstat", XMLWriter.OPENING); - generatedXML.writeElement(null, "prop", XMLWriter.OPENING); + generatedXML.writeElement("D", "propstat", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.OPENING); while (propertiesNotFoundList.hasMoreElements()) { generatedXML.writeElement - (null, (String) propertiesNotFoundList.nextElement(), + ("D", (String) propertiesNotFoundList.nextElement(), XMLWriter.NO_CONTENT); } - generatedXML.writeElement(null, "prop", XMLWriter.CLOSING); - generatedXML.writeElement(null, "status", XMLWriter.OPENING); + generatedXML.writeElement("D", "prop", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.OPENING); generatedXML.writeText(status); - generatedXML.writeElement(null, "status", XMLWriter.CLOSING); - generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING); + generatedXML.writeElement("D", "status", XMLWriter.CLOSING); + generatedXML.writeElement("D", "propstat", XMLWriter.CLOSING); } @@ -2548,7 +2513,7 @@ public class WebdavServlet } - generatedXML.writeElement(null, "response", XMLWriter.CLOSING); + generatedXML.writeElement("D", "response", XMLWriter.CLOSING); } @@ -2570,8 +2535,7 @@ public class WebdavServlet if (resourceLock != null) { wroteStart = true; - generatedXML.writeElement(null, "lockdiscovery", - XMLWriter.OPENING); + generatedXML.writeElement("D", "lockdiscovery", XMLWriter.OPENING); resourceLock.toXML(generatedXML); } @@ -2581,16 +2545,15 @@ public class WebdavServlet if (path.startsWith(currentLock.path)) { if (!wroteStart) { wroteStart = true; - generatedXML.writeElement(null, "lockdiscovery", - XMLWriter.OPENING); + generatedXML.writeElement("D", "lockdiscovery", + XMLWriter.OPENING); } currentLock.toXML(generatedXML); } } if (wroteStart) { - generatedXML.writeElement(null, "lockdiscovery", - XMLWriter.CLOSING); + generatedXML.writeElement("D", "lockdiscovery", XMLWriter.CLOSING); } else { return false; } @@ -2744,44 +2707,44 @@ public class WebdavServlet */ public void toXML(XMLWriter generatedXML) { - generatedXML.writeElement(null, "activelock", XMLWriter.OPENING); + generatedXML.writeElement("D", "activelock", XMLWriter.OPENING); - generatedXML.writeElement(null, "locktype", XMLWriter.OPENING); - generatedXML.writeElement(null, type, XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "locktype", XMLWriter.CLOSING); + generatedXML.writeElement("D", "locktype", XMLWriter.OPENING); + generatedXML.writeElement("D", type, XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "locktype", XMLWriter.CLOSING); - generatedXML.writeElement(null, "lockscope", XMLWriter.OPENING); - generatedXML.writeElement(null, scope, XMLWriter.NO_CONTENT); - generatedXML.writeElement(null, "lockscope", XMLWriter.CLOSING); + generatedXML.writeElement("D", "lockscope", XMLWriter.OPENING); + generatedXML.writeElement("D", scope, XMLWriter.NO_CONTENT); + generatedXML.writeElement("D", "lockscope", XMLWriter.CLOSING); - generatedXML.writeElement(null, "depth", XMLWriter.OPENING); + generatedXML.writeElement("D", "depth", XMLWriter.OPENING); if (depth == maxDepth) { generatedXML.writeText("Infinity"); } else { generatedXML.writeText("0"); } - generatedXML.writeElement(null, "depth", XMLWriter.CLOSING); + generatedXML.writeElement("D", "depth", XMLWriter.CLOSING); - generatedXML.writeElement(null, "owner", XMLWriter.OPENING); + generatedXML.writeElement("D", "owner", XMLWriter.OPENING); generatedXML.writeText(owner); - generatedXML.writeElement(null, "owner", XMLWriter.CLOSING); + generatedXML.writeElement("D", "owner", XMLWriter.CLOSING); - generatedXML.writeElement(null, "timeout", XMLWriter.OPENING); + generatedXML.writeElement("D", "timeout", XMLWriter.OPENING); long timeout = (expiresAt - System.currentTimeMillis()) / 1000; generatedXML.writeText("Second-" + timeout); - generatedXML.writeElement(null, "timeout", XMLWriter.CLOSING); + generatedXML.writeElement("D", "timeout", XMLWriter.CLOSING); - generatedXML.writeElement(null, "locktoken", XMLWriter.OPENING); + generatedXML.writeElement("D", "locktoken", XMLWriter.OPENING); Enumeration tokensList = tokens.elements(); while (tokensList.hasMoreElements()) { - generatedXML.writeElement(null, "href", XMLWriter.OPENING); + generatedXML.writeElement("D", "href", XMLWriter.OPENING); generatedXML.writeText("opaquelocktoken:" + tokensList.nextElement()); - generatedXML.writeElement(null, "href", XMLWriter.CLOSING); + generatedXML.writeElement("D", "href", XMLWriter.CLOSING); } - generatedXML.writeElement(null, "locktoken", XMLWriter.CLOSING); + generatedXML.writeElement("D", "locktoken", XMLWriter.CLOSING); - generatedXML.writeElement(null, "activelock", XMLWriter.CLOSING); + generatedXML.writeElement("D", "activelock", XMLWriter.CLOSING); } Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=1022570&r1=1022569&r2=1022570&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Thu Oct 14 15:06:48 2010 @@ -212,6 +212,11 @@ source distribution. (markt) </fix> <fix> + <bug>49428</bug>: Add a work-around for the known namespace issues for + some Microsoft WebDAV clients. Based on the patch provided by + Panagiotis Astithas. (kkolinko) + </fix> + <fix> <bug>49861</bug>: Don't log RMI ports formatted with commas for the JMX remote listener. (markt) </fix> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org