Author Login
Post Reply
dev Digest 17 Jul 2010 23:58:51 -0000 Issue 5282
Topics (messages 107885 through 107910):
Re: Heads up - might need 6.0.29 soon
107885 by: Rainer Jung
107892 by: jean-frederic clere
svn commit: r964777 - /tomcat/sandbox/bz-svn/
107886 by: rjung.apache.org
svn commit: r964778 - /tomcat/sandbox/bz-svn/.project
107887 by: rjung.apache.org
svn commit: r964780 - in /tomcat/trunk: java/org/apache/catalina/servlets/WebdavServlet.java webapps/docs/changelog.xml
107888 by: markt.apache.org
DO NOT REPLY [Bug 49428] Fix WebDAV mounts from Windows Mini-Redirector clients
107889 by: bugzilla.apache.org
Re: Using svn bugtraq?
107890 by: Rainer Jung
Re: [PROPOSAL] Change the name of the default host in server.xml
107891 by: Pid
svn commit: r964816 - /tomcat/trunk/webapps/examples/WEB-INF/classes/num/NumberGuessBean.java
107893 by: markt.apache.org
DO NOT REPLY [Bug 48967] Externalize Strings "catalina.base" and "catalina.home"
107894 by: bugzilla.apache.org
DO NOT REPLY [Bug 49565] Findbugs: Util.specialCharactersRepresentation should be both final and package protected
107895 by: bugzilla.apache.org
DO NOT REPLY [Bug 49165] Enhancement - Allow %{TIME_FORMAT}t As Configuration for AccessLogValve
107896 by: bugzilla.apache.org
107902 by: bugzilla.apache.org
Re: Bug 49165 - Allow %{TIME_FORMAT}t As Configuration for AccessLogValve
107897 by: Mark Thomas
107900 by: Alexander Shirkov
107901 by: Konstantin Kolinko
DO NOT REPLY [Bug 49595] Tomcat crashes in tcnative-1.dll frequently
107898 by: bugzilla.apache.org
DO NOT REPLY [Bug 40114] Session inadvertently "hijacked" by different after server restart
107899 by: bugzilla.apache.org
svn commit: r965118 - /tomcat/trunk/java/org/apache/coyote/memory/
107903 by: markt.apache.org
svn commit: r965122 - /tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
107904 by: markt.apache.org
svn commit: r965123 - /tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
107905 by: markt.apache.org
svn commit: r965130 - /tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
107906 by: markt.apache.org
svn commit: r965142 - /tomcat/tc6.0.x/trunk/STATUS.txt
107907 by: kkolinko.apache.org
svn commit: r965147 - /tomcat/tc5.5.x/trunk/STATUS.txt
107908 by: kkolinko.apache.org
DO NOT REPLY [Bug 49521] Fix ordering issues in setting channelSocket.maxPort
107909 by: bugzilla.apache.org
svn commit: r965150 - in /tomcat/trunk: java/org/apache/catalina/connector/ java/org/apache/tomcat/util/net/ webapps/docs/ webapps/docs/config/
107910 by: markt.apache.org
Administrivia:
---------------------------------------------------------------------
To post to the list, e-mail: dev@(protected)
To unsubscribe, e-mail: dev-digest-unsubscribe@(protected)
For additional commands, e-mail: dev-digest-help@(protected)
----------------------------------------------------------------------

Attachment:
dev_107885.ezm (zipped)On 16.07.2010 12:30, Mark Thomas wrote:
> On 16/07/2010 08:20, jean-frederic clere wrote:
>> On 07/15/2010 11:10 PM, Mark Thomas wrote:
>>> Folks,
>>>
>>> It looks like we have a regression in the cookie handling. Invalidating
>>> the session and then requesting a new session results in a mal-formed
>>> header (in trunk) and I have seen similar reports from one of our
>>> support customers on 6.0.28.
>>>
>>> I have a test case and am working on this now.
>>
>> Ok cool I am OK to release starting next week (Monday?), if you are fast
>> in voting and we don't add too many new patches during the week-end.
>
> Patch applied along with a couple of others that had the votes.
>
> There are some other patches it would be nice to have the votes for, but
> this fix needs to take priority so from my point of view, ready when you
> are.
I just committed to already approved changes to the loaders (one from
me, one from Konstantin). No plans for more changes to 6.0.29 on my side.
Regards,
Rainer

Attachment:
dev_107892.ezm (zipped)On 07/16/2010 01:15 PM, Rainer Jung wrote:
> On 16.07.2010 12:30, Mark Thomas wrote:
>> On 16/07/2010 08:20, jean-frederic clere wrote:
>>> On 07/15/2010 11:10 PM, Mark Thomas wrote:
>>>> Folks,
>>>>
>>>> It looks like we have a regression in the cookie handling. Invalidating
>>>> the session and then requesting a new session results in a mal-formed
>>>> header (in trunk) and I have seen similar reports from one of our
>>>> support customers on 6.0.28.
>>>>
>>>> I have a test case and am working on this now.
>>>
>>> Ok cool I am OK to release starting next week (Monday?), if you are fast
>>> in voting and we don't add too many new patches during the week-end.
>>
>> Patch applied along with a couple of others that had the votes.
>>
>> There are some other patches it would be nice to have the votes for, but
>> this fix needs to take priority so from my point of view, ready when you
>> are.
>
> I just committed to already approved changes to the loaders (one from
> me, one from Konstantin). No plans for more changes to 6.0.29 on my side.
Ok I will tag and propose the VOTE tomorrow so we can release on Monday.
Cheers
Jean-Frederic

Attachment:
dev_107886.ezm (zipped)Author: rjung
Date: Fri Jul 16 11:49:10 2010
New Revision: 964777
URL: http://svn.apache.org/viewvc?rev=964777&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=98765
Set svn:ignore
Modified:
tomcat/sandbox/bz-svn/ (props changed)
Propchange: tomcat/sandbox/bz-svn/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Jul 16 11:49:10 2010
@@(protected) @@
+.classpath
+.project
+.settings

Attachment:
dev_107887.ezm (zipped)Author: rjung
Date: Fri Jul 16 11:51:48 2010
New Revision: 964778
URL: http://svn.apache.org/viewvc?rev=964778&view=rev
Log:
Remove .project.
Removed:
tomcat/sandbox/bz-svn/.project

Attachment:
dev_107888.ezm (zipped)Author: markt
Date: Fri Jul 16 11:59:57 2010
New Revision: 964780
URL: http://svn.apache.org/viewvc?rev=964780&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. Patch provided by Panagiotis Astithas.
Modified:
tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java?rev=964780&r1=964779&r2=964780&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/servlets/WebdavServlet.java Fri Jul 16 11:59:57 2010
@@(protected)
if (type == FIND_BY_PROPERTY) {
properties = new Vector<String>();
- // propNode must be non-null if type == FIND_BY_PROPERTY
+ // propNode must be non-null if type == FIND_BY_PROPERTY
@SuppressWarnings("null")
NodeList childList = propNode.getChildNodes();
@@(protected)
new XMLWriter(resp.getWriter());
generatedXML.writeXMLHeader();
generatedXML.writeElement
- (null, "multistatus"
+ (null, "D:multistatus"
+ generateNamespaceDeclarations(),
XMLWriter.OPENING);
parseLockNullProperties
(req, generatedXML, lockNullPath, type,
properties);
- generatedXML.writeElement(null, "multistatus",
+ generatedXML.writeElement(null, "D:multistatus",
XMLWriter.CLOSING);
generatedXML.sendData();
return;
@@(protected)
XMLWriter generatedXML = new XMLWriter(resp.getWriter());
generatedXML.writeXMLHeader();
- generatedXML.writeElement(null, "multistatus"
+ generatedXML.writeElement(null, "D:multistatus"
+ generateNamespaceDeclarations(),
XMLWriter.OPENING);
@@(protected)
}
}
- generatedXML.writeElement(null, "multistatus",
+ generatedXML.writeElement(null, "D:multistatus",
XMLWriter.CLOSING);
generatedXML.sendData();
@@(protected)
generatedXML.writeXMLHeader();
generatedXML.writeElement
- (null, "multistatus" + generateNamespaceDeclarations(),
+ (null, "D:multistatus" + generateNamespaceDeclarations(),
XMLWriter.OPENING);
while (lockPathsList.hasMoreElements()) {
@@(protected)
// the lock information
XMLWriter generatedXML = new XMLWriter();
generatedXML.writeXMLHeader();
- generatedXML.writeElement(null, "prop"
+ generatedXML.writeElement(null, "D:prop"
+ generateNamespaceDeclarations(),
XMLWriter.OPENING);
- generatedXML.writeElement(null, "lockdiscovery",
+ generatedXML.writeElement(null, "D:lockdiscovery",
XMLWriter.OPENING);
lock.toXML(generatedXML);
- generatedXML.writeElement(null, "lockdiscovery",
+ generatedXML.writeElement(null, "D:lockdiscovery",
XMLWriter.CLOSING);
- generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
resp.setStatus(WebdavStatus.SC_OK);
resp.setContentType("text/xml; charset=UTF-8");
@@(protected)
* Generate the namespace declarations.
*/
private String generateNamespaceDeclarations() {
- return " xmlns=\"" + DEFAULT_NAMESPACE + "\"";
+ return " xmlns:D=\"" + DEFAULT_NAMESPACE + "\"";
}
@@(protected)
return;
}
- generatedXML.writeElement(null, "response", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "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(null, "D:href", XMLWriter.OPENING);
String href = req.getContextPath() + req.getServletPath();
if ((href.endsWith("/")) && (path.startsWith("/")))
@@(protected)
generatedXML.writeText(rewriteUrl(href));
- generatedXML.writeElement(null, "href", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:href", XMLWriter.CLOSING);
String resourceName = path;
int lastSlash = path.lastIndexOf('/');
@@(protected)
case FIND_ALL_PROP :
- generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
- generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
generatedXML.writeProperty
- (null, "creationdate",
+ (null, "D:creationdate",
getISOCreationDate(cacheEntry.attributes.getCreation()));
- generatedXML.writeElement(null, "displayname", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:displayname", XMLWriter.OPENING);
generatedXML.writeData(resourceName);
- generatedXML.writeElement(null, "displayname", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:displayname", XMLWriter.CLOSING);
if (cacheEntry.resource != null) {
generatedXML.writeProperty
- (null, "getlastmodified", FastHttpDateFormat.formatDate
+ (null, "D:getlastmodified", FastHttpDateFormat.formatDate
(cacheEntry.attributes.getLastModified(), null));
generatedXML.writeProperty
- (null, "getcontentlength",
+ (null, "D:getcontentlength",
String.valueOf(cacheEntry.attributes.getContentLength()));
String contentType = getServletContext().getMimeType
(cacheEntry.name);
if (contentType != null) {
- generatedXML.writeProperty(null, "getcontenttype",
+ generatedXML.writeProperty(null, "D:getcontenttype",
contentType);
}
- generatedXML.writeProperty(null, "getetag",
+ generatedXML.writeProperty(null, "D:getetag",
cacheEntry.attributes.getETag());
- generatedXML.writeElement(null, "resourcetype",
+ generatedXML.writeElement(null, "D:resourcetype",
XMLWriter.NO_CONTENT);
} else {
- generatedXML.writeElement(null, "resourcetype",
+ generatedXML.writeElement(null, "D:resourcetype",
XMLWriter.OPENING);
- generatedXML.writeElement(null, "collection",
+ generatedXML.writeElement(null, "D:collection",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "resourcetype",
+ generatedXML.writeElement(null, "D:resourcetype",
XMLWriter.CLOSING);
}
- generatedXML.writeProperty(null, "source", "");
+ generatedXML.writeProperty(null, "D:source", "");
- String supportedLocks = "<lockentry>"
- + "<lockscope><exclusive/></lockscope>"
- + "<locktype><write/></locktype>"
- + "</lockentry>" + "<lockentry>"
- + "<lockscope><shared/></lockscope>"
- + "<locktype><write/></locktype>"
- + "</lockentry>";
- generatedXML.writeElement(null, "supportedlock",
+ 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(null, "D:supportedlock",
XMLWriter.OPENING);
generatedXML.writeText(supportedLocks);
- generatedXML.writeElement(null, "supportedlock",
+ generatedXML.writeElement(null, "D:supportedlock",
XMLWriter.CLOSING);
generateLockDiscovery(path, generatedXML);
- generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "status", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
generatedXML.writeText(status);
- generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
break;
case FIND_PROPERTY_NAMES :
- generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
- generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
- generatedXML.writeElement(null, "creationdate",
+ generatedXML.writeElement(null, "D:creationdate",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "displayname",
+ generatedXML.writeElement(null, "D:displayname",
XMLWriter.NO_CONTENT);
if (cacheEntry.resource != null) {
- generatedXML.writeElement(null, "getcontentlanguage",
+ generatedXML.writeElement(null, "D:getcontentlanguage",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "getcontentlength",
+ generatedXML.writeElement(null, "D:getcontentlength",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "getcontenttype",
+ generatedXML.writeElement(null, "D:getcontenttype",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "getetag",
+ generatedXML.writeElement(null, "D:getetag",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "getlastmodified",
+ generatedXML.writeElement(null, "D:getlastmodified",
XMLWriter.NO_CONTENT);
}
- generatedXML.writeElement(null, "resourcetype",
+ generatedXML.writeElement(null, "D:resourcetype",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "source", XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "lockdiscovery",
+ generatedXML.writeElement(null, "D:source", XMLWriter.NO_CONTENT);
+ generatedXML.writeElement(null, "D:lockdiscovery",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "status", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
generatedXML.writeText(status);
- generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
break;
@@(protected)
// Parse the list of properties
- generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
- generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
Enumeration<String> properties = propertiesVector.elements();
@@(protected)
if (property.equals("creationdate")) {
generatedXML.writeProperty
- (null, "creationdate",
+ (null, "D:creationdate",
getISOCreationDate(cacheEntry.attributes.getCreation()));
} else if (property.equals("displayname")) {
generatedXML.writeElement
- (null, "displayname", XMLWriter.OPENING);
+ (null, "D:displayname", XMLWriter.OPENING);
generatedXML.writeData(resourceName);
generatedXML.writeElement
- (null, "displayname", XMLWriter.CLOSING);
+ (null, "D:displayname", XMLWriter.CLOSING);
} else if (property.equals("getcontentlanguage")) {
if (cacheEntry.context != null) {
propertiesNotFound.addElement(property);
} else {
- generatedXML.writeElement(null, "getcontentlanguage",
+ generatedXML.writeElement(null, "D:getcontentlanguage",
XMLWriter.NO_CONTENT);
}
} else if (property.equals("getcontentlength")) {
@@(protected)
propertiesNotFound.addElement(property);
} else {
generatedXML.writeProperty
- (null, "getcontentlength",
+ (null, "D:getcontentlength",
(String.valueOf(cacheEntry.attributes.getContentLength())));
}
} else if (property.equals("getcontenttype")) {
@@(protected)
propertiesNotFound.addElement(property);
} else {
generatedXML.writeProperty
- (null, "getcontenttype",
+ (null, "D:getcontenttype",
getServletContext().getMimeType
(cacheEntry.name));
}
@@(protected)
propertiesNotFound.addElement(property);
} else {
generatedXML.writeProperty
- (null, "getetag", cacheEntry.attributes.getETag());
+ (null, "D:getetag", cacheEntry.attributes.getETag());
}
} else if (property.equals("getlastmodified")) {
if (cacheEntry.context != null) {
propertiesNotFound.addElement(property);
} else {
generatedXML.writeProperty
- (null, "getlastmodified", FastHttpDateFormat.formatDate
+ (null, "D:getlastmodified", FastHttpDateFormat.formatDate
(cacheEntry.attributes.getLastModified(), null));
}
} else if (property.equals("resourcetype")) {
if (cacheEntry.context != null) {
- generatedXML.writeElement(null, "resourcetype",
+ generatedXML.writeElement(null, "D:resourcetype",
XMLWriter.OPENING);
- generatedXML.writeElement(null, "collection",
+ generatedXML.writeElement(null, "D:collection",
XMLWriter.NO_CONTENT);
- generatedXML.writeElement(null, "resourcetype",
+ generatedXML.writeElement(null, "D:resourcetype",
XMLWriter.CLOSING);
} else {
- generatedXML.writeElement(null, "resourcetype",
+ generatedXML.writeElement(null, "D:resourcetype",
XMLWriter.NO_CONTENT);
}
} else if (property.equals("source")) {
- generatedXML.writeProperty(null, "source", "");
+ generatedXML.writeProperty(null, "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",
+ 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(null, "D:supportedlock",
XMLWriter.OPENING);
generatedXML.writeText(supportedLocks);
- generatedXML.writeElement(null, "supportedlock",
+ generatedXML.writeElement(null, "D:supportedlock",
XMLWriter.CLOSING);
} else if (property.equals("lockdiscovery")) {
if (!generateLockDiscovery(path, generatedXML))
@@(protected)
}
- generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "status", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
generatedXML.writeText(status);
- generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
Enumeration<String> propertiesNotFoundList =
propertiesNotFound.elements();
@@(protected)
+ " " + WebdavStatus.getStatusText
(WebdavStatus.SC_NOT_FOUND));
- generatedXML.writeElement(null, "propstat", XMLWriter.OPENING);
- generatedXML.writeElement(null, "prop", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.OPENING);
while (propertiesNotFoundList.hasMoreElements()) {
generatedXML.writeElement
@@(protected)
XMLWriter.NO_CONTENT);
}
- generatedXML.writeElement(null, "prop", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "status", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:prop", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.OPENING);
generatedXML.writeText(status);
- generatedXML.writeElement(null, "status", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "propstat", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:status", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:propstat", XMLWriter.CLOSING);
}
@@(protected)
}
- generatedXML.writeElement(null, "response", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:response", XMLWriter.CLOSING);
}
@@(protected)
generatedXML.writeElement(null, "resourcetype",
XMLWriter.CLOSING);
- generatedXML.writeProperty(null, "source", "");
+ generatedXML.writeProperty(null, "D:source", "");
String supportedLocks = "<lockentry>"
+ "<lockscope><exclusive/></lockscope>"
@@(protected)
if (resourceLock != null) {
wroteStart = true;
- generatedXML.writeElement(null, "lockdiscovery",
+ generatedXML.writeElement(null, "D:lockdiscovery",
XMLWriter.OPENING);
resourceLock.toXML(generatedXML);
}
@@(protected)
if (path.startsWith(currentLock.path)) {
if (!wroteStart) {
wroteStart = true;
- generatedXML.writeElement(null, "lockdiscovery",
+ generatedXML.writeElement(null, "D:lockdiscovery",
XMLWriter.OPENING);
}
currentLock.toXML(generatedXML);
@@(protected)
}
if (wroteStart) {
- generatedXML.writeElement(null, "lockdiscovery",
+ generatedXML.writeElement(null, "D:lockdiscovery",
XMLWriter.CLOSING);
} else {
return false;
@@(protected)
*/
public void toXML(XMLWriter generatedXML) {
- generatedXML.writeElement(null, "activelock", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "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(null, "D:locktype", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:" + type, XMLWriter.NO_CONTENT);
+ generatedXML.writeElement(null, "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(null, "D:lockscope", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:" + scope, XMLWriter.NO_CONTENT);
+ generatedXML.writeElement(null, "D:lockscope", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "depth", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:depth", XMLWriter.OPENING);
if (depth == maxDepth) {
generatedXML.writeText("Infinity");
} else {
generatedXML.writeText("0");
}
- generatedXML.writeElement(null, "depth", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:depth", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "owner", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:owner", XMLWriter.OPENING);
generatedXML.writeText(owner);
- generatedXML.writeElement(null, "owner", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:owner", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "timeout", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:timeout", XMLWriter.OPENING);
long timeout = (expiresAt - System.currentTimeMillis()) / 1000;
generatedXML.writeText("Second-" + timeout);
- generatedXML.writeElement(null, "timeout", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:timeout", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "locktoken", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:locktoken", XMLWriter.OPENING);
Enumeration<String> tokensList = tokens.elements();
while (tokensList.hasMoreElements()) {
- generatedXML.writeElement(null, "href", XMLWriter.OPENING);
+ generatedXML.writeElement(null, "D:href", XMLWriter.OPENING);
generatedXML.writeText("opaquelocktoken:"
+ tokensList.nextElement());
- generatedXML.writeElement(null, "href", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:href", XMLWriter.CLOSING);
}
- generatedXML.writeElement(null, "locktoken", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:locktoken", XMLWriter.CLOSING);
- generatedXML.writeElement(null, "activelock", XMLWriter.CLOSING);
+ generatedXML.writeElement(null, "D:activelock", XMLWriter.CLOSING);
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=964780&r1=964779&r2=964780&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Jul 16 11:59:57 2010
@@(protected) @@
request processing threads and threads started by the application.
(markt)
</fix>
+ <fix>
+ <bug>49428</bug>: Add a work-around for the known namespace issues for
+ some Microsoft WebDAV clients. Patch provided by Panagiotis Astithas.
+ (markt)
+ </fix>
<add>
Add support for <code>*.jar</code> pattern in VirtualWebappLoader.
(kkolinko)

Attachment:
dev_107889.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=49428
Mark Thomas <markt@(protected):
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #6 from Mark Thomas <markt@(protected) ---
Patch applied to 7.0.x and will be in 7.0.1
Many thanks.
Note: I'll need to update the WebDAVFixFilter to take account of this.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107890.ezm (zipped)On 14.07.2010 19:14, Rainer Jung wrote:
> On 13.07.2010 22:11, Mark Thomas wrote:
>> On 13/07/2010 19:57, Rainer Jung wrote:
>>> I had a look at BZ46451. It suggests adding subversion properties to
>>> enable the use of subversion bugtraq. This allows a better integration
>>> of BZ into subversion commit messages and retrieval when looking at svn
>>> logs.
>>
>>> Comments?
>>
>> I was playing with this a while ago here:
>> http://svn.apache.org/viewvc/tomcat/sandbox/bz-svn/
>>
>> Feel free to play with the settings there.
>>
>> I don't recall why I lost interest in this but if you can get it
>> working +1.
...
> Anyone trying with eclipe?
>
> I will wait a bit and if no one opposes, I will commit the properties.
> If someone has a problem later, we can easily remove them again.
>
> Keep in mind, that since we are using a regexp, you will still have to
> enter the issue ID when preparing a new log message.
I tested a bit more.
Positive: one can mix bugtraq:message with bugtraq:logregex. Though the
spec says logregex wins, in reality it uses logregex to extract the data
when showing the log, but message when you enter a new log message. So
you can combine both and get structured inserts of BZ IDs for new log
messages and correct extraction even for the old unstructured ones.
Negative: Testing only went well for eclipse using the Subclipse SVN
plugin. For the Subversive plugin, the two-lines logregex usage fails.
Unfortunately it does not only produce incorrect links when displaying
the log, but also pops up an error message (String index out of range),
whenever you look at a single log message and the logregex matches.
Could you try it yourself by checking out
http://svn.apache.org/repos/asf/tomcat/sandbox/bz-svn as a new project
and look at the svn history. When you look at the individual log
entries, you should be provided with links to the issues, even if they
are given like "bug 23456" or "fix for 7890".
Please indicate if it works for you and which svn plugin you are using.
Subversive btw doesn't show the bug IDs in a separate column in the
history even if it finds the IDs and provides links when displaying the
log messages. Subclipse does.
BTW: Netbeans seems to not support the feature at all.
Regards,
Rainer

Attachment:
dev_107891.ezm (zipped)On 15 Jul 2010, at 16:32, Tim Funk <funkman@(protected):
> IIRC, there is no requirement. But from a mapping point of view, the name used should match what the browser is sending in the "Host:" field.
Except when the request is deliberately being directed to the defaultHost - which is frequently the case.
> Tomcat (iirc) doens't do any lookups based on the name field for Host so from that point of view - life in DNS is OK.
>
> But to access the tomcat server - the user needs to type some address (name/ip) into the browser.
>
> Where I am going with this is the chance of odd side effect. Let's say we choose "default" as the host name. So for some reason (where I can't think of a use case) - the admin then types in http://default/ to their browser. Their browser does the DNS lookup and goes to whatever DNS says. Which is probably not the tomcat instance.
Agreed.
Possible solution: set the name property to something not in DNS, but meaningful (tomcatDefault, or whatever), add an alias for localhost - which would also be educational for new users.
p
> So long story short ... my worry is a stretch, bordering fantasy-land. (which is why i am -0 but swayable) But in apache, there used to be warnings in various configs about using host names in various places instead of IP addresses due to relying on DNS.
>
>
>
> -Tim
>
> On 7/15/2010 11:11 AM, Mark Thomas wrote:
>> On 15/07/2010 15:16, Tim Funk wrote:
>>> -0
>>>
>>> Since the host name should be a valid dns name(ok it doesn't need to be
>>> a valid dns name if <Alias> is used), choosing a default which doesn't
>>> have a valid dns name may cause woes.
>>
>> If it does need to be a valid dns name then localhost absolutely makes
>> sense. Where is that requirement coming from? I can think of anywhere
>> off the top of my head.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@(protected)
> For additional commands, e-mail: dev-help@(protected)
>

Attachment:
dev_107893.ezm (zipped)Author: markt
Date: Fri Jul 16 14:55:01 2010
New Revision: 964816
URL: http://svn.apache.org/viewvc?rev=964816&view=rev
Log:
Make the bean Serializable so I can use the example to test/demo session persistence on restart
Add required getters/setters
Indent using 4 spaces
Fix FindBugs warning
Modified:
tomcat/trunk/webapps/examples/WEB-INF/classes/num/NumberGuessBean.java
Modified: tomcat/trunk/webapps/examples/WEB-INF/classes/num/NumberGuessBean.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/examples/WEB-INF/classes/num/NumberGuessBean.java?rev=964816&r1=964815&r2=964816&view=diff
==============================================================================
--- tomcat/trunk/webapps/examples/WEB-INF/classes/num/NumberGuessBean.java (original)
+++ tomcat/trunk/webapps/examples/WEB-INF/classes/num/NumberGuessBean.java Fri Jul 16 14:55:01 2010
@@(protected) @@
/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements. See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
/*
* Originally written by Jason Hunter, http://www.servlets.com.
@@(protected) @@
package num;
-import java.util.*;
+import
java.io.Serializable;
+import
java.util.Random;
+
+public class NumberGuessBean implements Serializable {
+
+ private static final long serialVersionUID = 1L;
-public class NumberGuessBean {
+ private int answer;
+ private String hint;
+ private int numGuesses;
+ private boolean success;
+ private Random random = new Random();
- int answer;
- boolean success;
- String hint;
- int numGuesses;
+ public NumberGuessBean() {
+ reset();
+ }
- public NumberGuessBean() {
- reset();
- }
+ public int getAnswer() {
+ return answer;
+ }
- public void setGuess(String guess) {
- numGuesses++;
+ public void setAnswer(int answer) {
+ this.answer = answer;
+ }
- int g;
- try {
- g = Integer.parseInt(guess);
+ public String getHint() {
+ return "" + hint;
}
- catch (NumberFormatException e) {
- g = -1;
+
+ public void setHint(String hint) {
+ this.hint = hint;
}
- if (g == answer) {
- success = true;
+ public void setNumGuesses(int numGuesses) {
+ this.numGuesses = numGuesses;
}
- else if (g == -1) {
- hint = "a number next time";
+
+ public int getNumGuesses() {
+ return numGuesses;
}
- else if (g < answer) {
- hint = "higher";
+
+ public boolean getSuccess() {
+ return success;
}
- else if (g > answer) {
- hint = "lower";
+
+ public void setSuccess(boolean success) {
+ this.success = success;
}
- }
- public boolean getSuccess() {
- return success;
- }
+ public void setGuess(String guess) {
+ numGuesses++;
- public String getHint() {
- return "" + hint;
- }
+ int g;
+ try {
+ g = Integer.parseInt(guess);
+ } catch (NumberFormatException e) {
+ g = -1;
+ }
- public int getNumGuesses() {
- return numGuesses;
- }
+ if (g == answer) {
+ success = true;
+ } else if (g == -1) {
+ hint = "a number next time";
+ } else if (g < answer) {
+ hint = "higher";
+ } else if (g > answer) {
+ hint = "lower";
+ }
+ }
- public void reset() {
- answer = Math.abs(new Random().nextInt() % 100) + 1;
- success = false;
- numGuesses = 0;
- }
+ public void reset() {
+ answer = Math.abs(random.nextInt() % 100) + 1;
+ success = false;
+ numGuesses = 0;
+ }
}

Attachment:
dev_107894.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=48967
--- Comment #1 from Rainer Jung <rainer.jung@(protected) ---
Possible patch available for review under
http://people.apache.org/~rjung/patches/trunk-catalina_home_base.patch
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107895.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=49565
Jeremy Boynes <jboynes@(protected):
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--- Comment #3 from Jeremy Boynes <jboynes@(protected) ---
Patch applied as revision 961581
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107896.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=49165
Alexander Shirkov <sgdread@(protected):
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|dev@(protected)
--- Comment #1 from Alexander Shirkov <sgdread@(protected) ---
Created an attachment (id=25778)
--> (https://issues.apache.org/bugzilla/attachment.cgi?id=25778)
#49165 fix (added %t{TIME_FORMAT} support)
Introduced new format for %t for AccesLogValve.
- new format %{TIME_FORMAT}t available.
- if custom pattern contains milliseconds field, then optimizations, which
performs new current date time object creation only once per 1000 millis, will
be turned off.
- unit tests for added/changed functionality
- performance tests
Results of perfomance testing (tested on MacOS X 10.6.4):
AccessLogValve: 5 threads and 1000000 iterations using oldValve took
8381ms
AccessLogValve: 5 threads and 1000000 iterations using newValve took
7742ms
AccessLogValve: 5 threads and 1000000 iterations using newValveWithMillis took
8651ms
AccessLogValve: 5 threads and 2000000 iterations using oldValve took
16864ms
AccessLogValve: 5 threads and 2000000 iterations using newValve took
15945ms
AccessLogValve: 5 threads and 2000000 iterations using newValveWithMillis took
16806ms
AccessLogValve: 5 threads and 3000000 iterations using oldValve took
25010ms
AccessLogValve: 5 threads and 3000000 iterations using newValve took
24575ms
AccessLogValve: 5 threads and 3000000 iterations using newValveWithMillis took
26674ms
AccessLogValve: 5 threads and 4000000 iterations using oldValve took
33775ms
AccessLogValve: 5 threads and 4000000 iterations using newValve took
33043ms
AccessLogValve: 5 threads and 4000000 iterations using newValveWithMillis took
33796ms
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107902.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=49165
Alexander Shirkov <sgdread@(protected):
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|sgdread@(protected)
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107897.ezm (zipped)On 15/07/2010 05:11, Alexander Shirkov wrote:
> Hello,
>
> I¹m working on Bug 49164 (
> https://issues.apache.org/bugzilla/show_bug.cgi?id=49165)
>
> Have a question:
> Any hidden reasons, why following construction was used for creating %t
> pattern?:
It stems from this:
http://svn.apache.org/viewvc?view=revision&revision=285381
It appears to be performance related but from the figures you present
below, it may now be unnecessary.
Mark
>
> private SimpleDateFormat dayFormatter = new SimpleDateFormat("dd");
> private SimpleDateFormat monthFormatter = new SimpleDateFormat("MM");
> private SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy");
> private SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss");
> ...
> StringBuilder current = new StringBuilder(32);
> current.append('[');
> current.append(struct.dayFormatter.format(date));
> current.append('/');
> current.append(lookup(struct.monthFormatter.format(date)));
> current.append('/');
> current.append(struct.yearFormatter.format(date));
> current.append(':');
> current.append(struct.timeFormatter.format(date));
> current.append(' ');
> current.append(getTimeZone(date));
> current.append(']');
> struct.currentDateString = current.toString();
>
> Instead of this one:
>
> private SimpleDateFormat timeFormatter = new
> SimpleDateFormat("[dd/MMM/yyyy:HH:mm:ss]");
> ...
> struct.currentDateString = struct.timeFormatter.format(date);
>
> I¹ve added one more test with this structure to
> org.apache.catalina.valves.Benchmarks and looks like the last solution the
> shortest and fastest option. Plus we can pass any pattern from configuration
> (#49165 enhancement intention):
>
> TimeDateElementBenchmarkTest_Sync: 5 threads and 10000000 iterations using
> Syncs took 3392ms
> TimeDateElementBenchmarkTest_Local: 5 threads and 10000000 iterations using
> ThreadLocals took 2551ms
> TimeDateElementBenchmarkTest_LocalStruct: 5 threads and 10000000 iterations
> using single ThreadLocal took 2237ms
> TimeDateElementBenchmarkTest_LocalStruct_SBuilder: 5 threads and 10000000
> iterations using single ThreadLocal, with StringBuilder took 2196ms
> TimeDateElementBenchmarkTest_LocalStruct_SimpleDateFormat: 5 threads and
> 10000000 iterations using single ThreadLocal SimpleDateFormat took 2152ms
>
>
> P. S. My thanks to Mark Thomas for buglist to start.
>
>
>

Attachment:
dev_107900.ezm (zipped)I've submitted patch and related unit tests.
Some questions about the process:
- should I assign bug to myself?
- should I change bug status from NEW to RESOLVED after submitting the
patch?
Thanks,
Alexander
On 17.07.10 6:28, "Mark Thomas" <markt@(protected):
> On 15/07/2010 05:11, Alexander Shirkov wrote:
>> Hello,
>>
>> I¹m working on Bug 49164 (
>> https://issues.apache.org/bugzilla/show_bug.cgi?id=49165)
>>
>> Have a question:
>> Any hidden reasons, why following construction was used for creating %t
>> pattern?:
>
> It stems from this:
> http://svn.apache.org/viewvc?view=revision&revision=285381
>
> It appears to be performance related but from the figures you present
> below, it may now be unnecessary.
>
> Mark
>
>>
>> private SimpleDateFormat dayFormatter = new SimpleDateFormat("dd");
>> private SimpleDateFormat monthFormatter = new SimpleDateFormat("MM");
>> private SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy");
>> private SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss");
>> ...
>> StringBuilder current = new StringBuilder(32);
>> current.append('[');
>> current.append(struct.dayFormatter.format(date));
>> current.append('/');
>> current.append(lookup(struct.monthFormatter.format(date)));
>> current.append('/');
>> current.append(struct.yearFormatter.format(date));
>> current.append(':');
>> current.append(struct.timeFormatter.format(date));
>> current.append(' ');
>> current.append(getTimeZone(date));
>> current.append(']');
>> struct.currentDateString = current.toString();
>>
>> Instead of this one:
>>
>> private SimpleDateFormat timeFormatter = new
>> SimpleDateFormat("[dd/MMM/yyyy:HH:mm:ss]");
>> ...
>> struct.currentDateString = struct.timeFormatter.format(date);
>>
>> I¹ve added one more test with this structure to
>> org.apache.catalina.valves.Benchmarks and looks like the last solution the
>> shortest and fastest option. Plus we can pass any pattern from configuration
>> (#49165 enhancement intention):
>>
>> TimeDateElementBenchmarkTest_Sync: 5 threads and 10000000 iterations using
>> Syncs took 3392ms
>> TimeDateElementBenchmarkTest_Local: 5 threads and 10000000 iterations using
>> ThreadLocals took 2551ms
>> TimeDateElementBenchmarkTest_LocalStruct: 5 threads and 10000000 iterations
>> using single ThreadLocal took 2237ms
>> TimeDateElementBenchmarkTest_LocalStruct_SBuilder: 5 threads and 10000000
>> iterations using single ThreadLocal, with StringBuilder took 2196ms
>> TimeDateElementBenchmarkTest_LocalStruct_SimpleDateFormat: 5 threads and
>> 10000000 iterations using single ThreadLocal SimpleDateFormat took 2152ms
>>
>>
>> P. S. My thanks to Mark Thomas for buglist to start.
>>
>>
>>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@(protected)
> For additional commands, e-mail: dev-help@(protected)
>

Attachment:
dev_107901.ezm (zipped)2010/7/17 Alexander Shirkov <sgdread@(protected)>:
> I've submitted patch and related unit tests.
>
> Some questions about the process:
> - should I assign bug to myself?
No. It will prevent bug update notifications from being sent to the dev@(protected).
> - should I change bug status from NEW to RESOLVED after submitting the
> patch?
No. A bug is marked as resolved only after the issue was fixed in all
affected Tomcat versions.
Best regards,
Konstantin Kolinko

Attachment:
dev_107898.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=49595
Mark Thomas <markt@(protected):
What |Removed |Added
----------------------------------------------------------------------------
Component|Connectors |Library
Version|6.0.26 |1.1.20
Product|Tomcat 6 |Tomcat Native
Target Milestone|default |---
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107899.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=40114
Mark Thomas <markt@(protected):
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |WORKSFORME
--- Comment #6 from Mark Thomas <markt@(protected) ---
With session persistence disabled there is no way Tomcat can be making session
scoped beans for a session present before the restart available after the
restart.
I'd be looking at application and/or framework persistence mechanisms.
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107903.ezm (zipped)Author: markt
Date: Sat Jul 17 18:13:21 2010
New Revision: 965118
URL: http://svn.apache.org/viewvc?rev=965118&view=rev
Log:
Remove unused code
Removed:
tomcat/trunk/java/org/apache/coyote/memory/

Attachment:
dev_107904.ezm (zipped)Author: markt
Date: Sat Jul 17 18:20:11 2010
New Revision: 965122
URL: http://svn.apache.org/viewvc?rev=965122&view=rev
Log:
Clean-up. No functional change.
Modified:
tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
Modified: tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java?rev=965122&r1=965121&r2=965122&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java Sat Jul 17 18:20:11 2010
@@(protected);
* will not fit Jk protocols like JNI.
*
* This is the main interface to be implemented by a coyote connector.
- * Adapter is the main interface to be implemented by a coyote servlet container.
+ * Adapter is the main interface to be implemented by a coyote servlet
+ * container.
*
* @author Remy Maucherat
* @author Costin Manolache
@@(protected);
*/
public interface ProtocolHandler {
-
/**
* Pass config info.
*/
public void setAttribute(String name, Object value);
-
-
public Object getAttribute(String name);
public Iterator<String> getAttributeNames();
+
/**
* The adapter, used to call the connector.
*/
public void setAdapter(Adapter adapter);
-
-
public Adapter getAdapter();
/**
- * Init the protocol.
+ * Initialise the protocol.
*/
- public void init()
- throws Exception;
+ public void init() throws Exception;
/**
* Start the protocol.
*/
- public void start()
- throws Exception;
+ public void start() throws Exception;
+
/**
* Pause the protocol (optional).
*/
- public void pause()
- throws Exception;
+ public void pause() throws Exception;
+
/**
* Resume the protocol (optional).
*/
- public void resume()
- throws Exception;
-
- public void destroy()
- throws Exception;
+ public void resume() throws Exception;
+ /**
+ * Destroy the protocol (optional).
+ */
+ public void destroy() throws Exception;
}

Attachment:
dev_107905.ezm (zipped)Author: markt
Date: Sat Jul 17 18:24:01 2010
New Revision: 965123
URL: http://svn.apache.org/viewvc?rev=965123&view=rev
Log:
Expose executor.
Required so Servlet 3 Async implementation can use the container thread pool when a new thread needs to be dispatched. (e.g. from AsyncContext.start(Runnable)
Modified:
tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
Modified: tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java?rev=965123&r1=965122&r2=965123&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java Sat Jul 17 18:24:01 2010
@@(protected) @@
package org.apache.coyote;
import
java.util.Iterator;
+import
java.util.concurrent.Executor;
/**
@@(protected) {
/**
+ * The executor, provide access to the underlying thread pool.
+ */
+ public Executor getExecutor();
+
+
+ /**
* Initialise the protocol.
*/
public void init() throws Exception;

Attachment:
dev_107906.ezm (zipped)Author: markt
Date: Sat Jul 17 20:40:51 2010
New Revision: 965130
URL: http://svn.apache.org/viewvc?rev=965130&view=rev
Log:
Trivial - align comment
Modified:
tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=965130&r1=965129&r2=965130&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Sat Jul 17 20:40:51 2010
@@(protected)
//TODO SERVLET3 - async
async = true;
} else if (actionCode == ActionCode.ACTION_ASYNC_COMPLETE) {
- //TODO SERVLET3 - async
+ //TODO SERVLET3 - async
AtomicBoolean dispatch = (AtomicBoolean)param;
RequestInfo rp = request.getRequestProcessor();
if ( rp.getStage() !=
org.apache.coyote.Constants.STAGE_SERVICE ) { //async handling

Attachment:
dev_107907.ezm (zipped)Author: kkolinko
Date: Sat Jul 17 22:33:05 2010
New Revision: 965142
URL: http://svn.apache.org/viewvc?rev=965142&view=rev
Log:
proposal
Modified:
tomcat/tc6.0.x/trunk/STATUS.txt
Modified: tomcat/tc6.0.x/trunk/STATUS.txt
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=965142&r1=965141&r2=965142&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS.txt (original)
+++ tomcat/tc6.0.x/trunk/STATUS.txt Sat Jul 17 22:33:05 2010
@@(protected):
http://svn.apache.org/viewvc?rev=963106&view=rev
+1: markt, kkolinko
-1:
+
+* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49521
+ http://people.apache.org/~kkolinko/patches/2010-07-17_tc6_bug49521.patch
+ - Disable scanning for a free port in Jk AJP/1.3 connector by default.
+ - Do not change maxPort field value of ChannelSocket in its #setPort()
+ and #init() methods.
+ - Add support for "maxPort" attribute on a <Connector> element as a synonym
+ for channelSocket.maxPort
+ +1: kkolinko
+ -1:

Attachment:
dev_107908.ezm (zipped)Author: kkolinko
Date: Sat Jul 17 22:58:01 2010
New Revision: 965147
URL: http://svn.apache.org/viewvc?rev=965147&view=rev
Log:
proposal
Modified:
tomcat/tc5.5.x/trunk/STATUS.txt
Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL: http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=965147&r1=965146&r2=965147&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Sat Jul 17 22:58:01 2010
@@(protected):
svn propset svn:executable '*' connectors/http11/src/test/test.bat
+1: rjung, kkolinko
-1:
+
+
+* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49521
+ http://people.apache.org/~kkolinko/patches/2010-07-17_tc55_bug49521.patch
+ - Disable scanning for a free port in Jk AJP/1.3 connector by default.
+ - Do not change maxPort field value of ChannelSocket in its #setPort()
+ and #init() methods.
+ - Add support for "maxPort" attribute on a <Connector> element as a synonym
+ for channelSocket.maxPort
+ +1: kkolinko
+ -1:

Attachment:
dev_107909.ezm (zipped)https://issues.apache.org/bugzilla/show_bug.cgi?id=49521
Konstantin Kolinko <knst.kolinko@(protected):
What |Removed |Added
----------------------------------------------------------------------------
Attachment #25657|0 |1
is obsolete| |
--- Comment #2 from Konstantin Kolinko <knst.kolinko@(protected) ---
(From update of attachment 25657)
Proposed a different patch for 6.0 and 5.5
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Attachment:
dev_107910.ezm (zipped)Author: markt
Date: Sat Jul 17 23:57:23 2010
New Revision: 965150
URL: http://svn.apache.org/viewvc?rev=965150&view=rev
Log:
Restore pero's timeout fix for the BIO connector. Add configuration of the timeout.
Modified:
tomcat/trunk/java/org/apache/catalina/connector/Connector.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
tomcat/trunk/webapps/docs/changelog.xml
tomcat/trunk/webapps/docs/config/ajp.xml
tomcat/trunk/webapps/docs/config/http.xml
Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=965150&r1=965149&r2=965150&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Sat Jul 17 23:57:23 2010
@@(protected)
/**
+ * Default timeout for asynchronous requests (ms).
+ */
+ protected long asyncTimeout = 10000;
+
+
+ /**
* The "enable DNS lookups" flag for this Connector.
*/
protected boolean enableLookups = false;
@@(protected)
/**
+ * Return the default timeout for async requests in ms.
+ */
+ public long getAsyncTimeout() {
+
+ return asyncTimeout;
+
+ }
+
+
+ /**
+ * Set the default timeout for async requests.
+ *
+ * @param allowTrace The new timeout in ms.
+ */
+ public void setAsyncTimeout(long asyncTimeout) {
+
+ this.asyncTimeout= asyncTimeout;
+ setProperty("asyncTimeout", String.valueOf(asyncTimeout));
+
+ }
+
+
+ /**
* Return the "enable DNS lookups" flag.
*/
public boolean getEnableLookups() {
Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=965150&r1=965149&r2=965150&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Sat Jul 17 23:57:23 2010
@@(protected)
//TODO SERVLET3 - async - need to retrieve the ServletContext here
//or just the webapp classloader associated with to do
//run with start(Runnable)
- asyncContext.setHasOriginalRequestAndResponse(request==getRequest() && response==getResponse().getResponse());
+ asyncContext.setHasOriginalRequestAndResponse(request==getRequest() &&
+ response==getResponse().getResponse());
+
+ asyncContext.setTimeout(getConnector().getAsyncTimeout());
+
return asyncContext;
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java?rev=965150&r1=965149&r2=965150&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Sat Jul 17 23:57:23 2010
@@(protected)
// Start acceptor threads
for (int i = 0; i < acceptorThreadCount; i++) {
- Thread acceptorThread = new Thread(new Acceptor(), getName() + "-Acceptor-" + i);
+ Thread acceptorThread = new Thread(new Acceptor(),
+ getName() + "-Acceptor-" + i);
acceptorThread.setPriority(threadPriority);
acceptorThread.setDaemon(getDaemon());
acceptorThread.start();
}
+
+ // Start async timeout thread
+ Thread timeoutThread = new Thread(new AsyncTimeout(),
+ getName() + "-AsyncTimeout");
+ timeoutThread.setPriority(threadPriority);
+ timeoutThread.setDaemon(true);
+ timeoutThread.start();
}
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=965150&r1=965149&r2=965150&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sat Jul 17 23:57:23 2010
@@(protected) @@
replaced, ensure that the new Set-Cookie header overwrites the old
Set-Cookie header. (markt)
</fix>
+ <fix>
+ Create a thread to trigger asynchronous timeouts when using the BIO
+ connector, change the default timeout to 10s (was infinite) and make the
+ default timeout configurable using the <code>asyncTimeout</code>
+ attribute on the connector. (pero/markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
Modified: tomcat/trunk/webapps/docs/config/ajp.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/ajp.xml?rev=965150&r1=965149&r2=965150&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/ajp.xml (original)
+++ tomcat/trunk/webapps/docs/config/ajp.xml Sat Jul 17 23:57:23 2010
@@(protected) @@
HTTP method. If not specified, this attribute is set to false.</p>
</attribute>
+ <attribute name="asyncTimeout" required="false">
+ <p>The default timeout for asynchronous requests in milliseconds. If not
+ specified, this attribute is set to 10000 (10 seconds).</p>
+ </attribute>
+
<attribute name="enableLookups" required="false">
<p>Set to <code>true</code> if you want calls to
<code>request.getRemoteHost()</code> to perform DNS lookups in
Modified: tomcat/trunk/webapps/docs/config/http.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/http.xml?rev=965150&r1=965149&r2=965150&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/trunk/webapps/docs/config/http.xml Sat Jul 17 23:57:23 2010
@@(protected) @@
HTTP method. If not specified, this attribute is set to false.</p>
</attribute>
+ <attribute name="asyncTimeout" required="false">
+ <p>The default timeout for asynchronous requests in milliseconds. If not
+ specified, this attribute is set to 10000 (10 seconds).</p>
+ </attribute>
+
<attribute name="enableLookups" required="false">
<p>Set to <code>true</code> if you want calls to
<code>request.getRemoteHost()</code> to perform DNS lookups in