Java Mailing List Archive

http://www.junlu.com/

Home » dev-digest.tomcat »

dev Digest 17 Jul 2010 23:58:51 -0000 Issue 5282

dev-digest-help

2010-07-17


Author LoginPost 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



©2008 junlu.com - Jax Systems, LLC, U.S.A.