Re: possible mod_jk "feature"

2006-08-21 Thread Jean-frederic Clere

Jim Jagielski wrote:



On Aug 18, 2006, at 9:58 AM, Jean-frederic Clere wrote:


Jim Jagielski wrote:


I and other have run into issues where the socket
between Apache and Tomcat (due to a in-between firewall)
isn't closed as it should be...



Yep, I have heared about things like that, on the Tomcat side the  
socket seems opened but it closed on the httpd side.
The problem is that httpd will detect it and close the "closed"  
socket but nothing reaches the TC... Until a timeout occurs on the  
TC side (OS socket timeout).
New requests cause new connections to be opened that results in  
threads increase (x2) in the TC with all the bad you could think of.




Exactly.


I'm digging further into
this as far as why the timeout isn't being honored, but
it got me thinking that a "no reuse" option might be
nice. Basically, it prevents reuse from ever being set
to TRUE...



Well the problem is how to detect that a "bad close" has happended.



Yep. Code-wise it's not trivial (not real tough, not
just trivial) but from an Admin standpoint, they now when
their setup causes this. So having a "don't reuse" flag
would allow them to bypass this.


Right I haven't find the right way to handle this until now.
I have developped a JMX interface over the httpd-proxy-scoreboard 
slotmem that allows TC to mark its worker not useable when the number of 
threads increases too much. Somehow don't use until I am ready.

That would allow the Admin of the TC to handle httpd workers.

The other way I see it to force a PING/PONG when starting a new 
connection, there TC could say don't use until I am ready (with a time 
value).


I am only -0 about the "don't reuse" ;-)

Cheers


Jean-Frederic




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [VOTE] Release Tomcat 4.1.33 as beta

2006-08-21 Thread Yoav Shapira

Hi,
+1 for the release.

I've added versions 4.1.33, 5.5.18, and 6.0.0 to Bugzilla so that we
have one less thing to do when we cut those releases...

Yoav

On 8/20/06, Mark Thomas <[EMAIL PROTECTED]> wrote:

All,

Please vote on releasing Apache Tomcat 4.1.33 as beta.

Download from:
http://tomcat.apache.org/dev/dist/

MD5s:
apache-tomcat-4.1.33-src.tar.gz  c4fbeda65a3d7418b129d5ec69fa18de

The vote will run for approximately 72 hours.

If this VOTE passes, a stability vote will be held a suitable period
(at least 2 weeks) after the beta release.

For those keeping score, 4.1.32 had a couple of regressions that:
- broke the AJP connector
- prevented any webapp that shipped commons-logging from loading

Mark

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [VOTE] Release Tomcat 4.1.33 as beta

2006-08-21 Thread Mark Thomas
Yoav Shapira wrote:
> Hi,
> +1 for the release.
> 
> I've added versions 4.1.33, 5.5.18, and 6.0.0 to Bugzilla so that we
> have one less thing to do when we cut those releases...

Thanks.

Mark


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: possible mod_jk "feature"

2006-08-21 Thread Jim Jagielski

I agree that the solution is not pretty, so in many ways
I look at the "feature" as similar to the flush_packets
feature: a help to those admin's who are stuck.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 37793] - org.apache.jasper.runtime.BodyContentImpl doesn't reset the 'cb' character array, causes memory leak

2006-08-21 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=37793


[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|CLOSED  |REOPENED
 Resolution|WONTFIX |




-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



svn commit: r433260 [5/5] - in /tomcat/sandbox/tomcat-lite: ./ java/org/apache/coyote/ java/org/apache/tomcat/lite/ java/org/apache/tomcat/lite/ctxmap/ java/org/apache/tomcat/lite/http/ java/org/apach

2006-08-21 Thread costin
Added: 
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/session/SessionManagerServlet.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/session/SessionManagerServlet.java?rev=433260&view=auto
==
--- 
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/session/SessionManagerServlet.java
 (added)
+++ 
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/session/SessionManagerServlet.java
 Mon Aug 21 08:20:40 2006
@@ -0,0 +1,575 @@
+/*
+ * Copyright 1999,2004 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ */
+
+
+package org.apache.tomcat.servlets.session;
+
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.EventListener;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.apache.catalina.Globals;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.tomcat.servlets.util.RandomGenerator;
+
+// TODO: move 'expiring objects' to a separate utility class
+// TODO: hook the background thread
+
+// Must be implemented as load-on-startup
+
+
+/**
+ * Minimal implementation of the Manager interface that supports
+ * no session persistence or distributable capabilities.  This class may
+ * be subclassed to create more sophisticated Manager implementations.
+ *
+ * @author Costin Manolache
+ * @author Craig R. McClanahan
+ */
+public class SessionManagerServlet extends HttpServlet {
+protected static Log log = LogFactory.getLog(SessionManagerServlet.class);
+
+protected RandomGenerator randomG = new RandomGenerator();
+
+protected ServletContext context;
+
+static class ExpiringMap {
+
+
+}
+
+
+/**
+ * The distributable flag for Sessions created by this Manager.  If this
+ * flag is set to true, any user attributes added to a
+ * session controlled by this Manager must be Serializable. 
+ * 
+ * This is for compliance with the spec - tomcat-lite is not intended for
+ * session replication ( use a full version for that )
+ */
+protected boolean distributable;
+
+/**
+ * The default maximum inactive interval for Sessions created by
+ * this Manager.
+ */
+protected int maxInactiveInterval = 60;
+
+/**
+ * The longest time (in seconds) that an expired session had been alive.
+ */
+protected int sessionMaxAliveTime;
+
+
+/**
+ * Average time (in seconds) that expired sessions had been alive.
+ */
+protected int sessionAverageAliveTime;
+
+
+/**
+ * Number of sessions that have expired.
+ */
+protected int expiredSessions = 0;
+
+static class SessionLRU extends LinkedHashMap {
+protected boolean removeEldestEntry(Map.Entry eldest) {
+HttpSessionImpl s = (HttpSessionImpl)eldest.getValue();
+int size = this.size();
+
+// TODO: check if eldest is expired or if we're above the limit.
+// if eldest is expired, turn a flag to check for more.
+
+// Note: this doesn't work well for sessions that set shorter
+// expiry time, or longer expiry times. 
+return false;
+}
+
+}
+
+/**
+ * The set of currently active Sessions for this Manager, keyed by
+ * session identifier.
+ */
+protected LinkedHashMap sessions = new SessionLRU();
+
+// Number of sessions created by this manager
+protected int sessionCounter=0;
+
+protected int maxActive=0;
+
+// number of duplicated session ids - anything >0 means we have problems
+protected int duplicates=0;
+
+protected boolean initialized=false;
+
+/**
+ * Processing time during session expiration.
+ */
+protected long processingTime = 0;
+
+/**
+ * Iteration count for background processing.
+ */
+private int count = 0;
+
+
+/**
+ * Frequency of the session expiration, and related manager operations.
+ * Manager operations will be done once for the specified amount of
+ * backgrondProce

svn commit: r433260 [1/5] - in /tomcat/sandbox/tomcat-lite: ./ java/org/apache/coyote/ java/org/apache/tomcat/lite/ java/org/apache/tomcat/lite/ctxmap/ java/org/apache/tomcat/lite/http/ java/org/apach

2006-08-21 Thread costin
Author: costin
Date: Mon Aug 21 08:20:40 2006
New Revision: 433260

URL: http://svn.apache.org/viewvc?rev=433260&view=rev
Log:
More refactoring - lite directory cleaned up of most functionality that could 
go to a module, all modules
transformed into filter/servlets or listeners. 
Finally implemented a new  web.xml reader, and support saving the processed 
result in .ser.

Starting to make the old valves/etc general purpose filters with no dep on 
lite, user-space possible

Added:
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/TomcatLite.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/ctxmap/

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/ctxmap/WebappContextMapper.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/http/

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/http/CoyoteAdapter.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/webmap/

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/webmap/WebappFilterMapper.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/webmap/WebappServletMapper.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/EnvEntryData.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/FilterData.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/FilterMappingData.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/SecurityConstraintData.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/ServletData.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/WebAppData.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/config/WebResourceCollectionData.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/deploy/

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/deploy/InitServlet.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/deploy/ReloadServlet.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/deploy/WebAnnotation.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/deploy/WebXml.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/session/

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/session/HttpSessionImpl.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/session/SessionManagerServlet.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/servlets/util/RandomGenerator.java
tomcat/sandbox/tomcat-lite/resources/tomcat-lite.MF   (with props)
tomcat/sandbox/tomcat-lite/webapps/ROOT/
tomcat/sandbox/tomcat-lite/webapps/ROOT/WEB-INF/
tomcat/sandbox/tomcat-lite/webapps/ROOT/WEB-INF/classes   (with props)
tomcat/sandbox/tomcat-lite/webapps/ROOT/WEB-INF/lib/
tomcat/sandbox/tomcat-lite/webapps/ROOT/WEB-INF/lib/moneydance.jar   (with 
props)
tomcat/sandbox/tomcat-lite/webapps/ROOT/dav/
tomcat/sandbox/tomcat-lite/webapps/ROOT/index.html
tomcat/sandbox/tomcat-lite/webapps/__x_deploy/
tomcat/sandbox/tomcat-lite/webapps/__x_deploy/WEB-INF/
tomcat/sandbox/tomcat-lite/webapps/__x_deploy/WEB-INF/web.xml
tomcat/sandbox/tomcat-lite/webapps/__x_engine/
tomcat/sandbox/tomcat-lite/webapps/__x_engine/WEB-INF/
tomcat/sandbox/tomcat-lite/webapps/__x_engine/WEB-INF/web.xml
tomcat/sandbox/tomcat-lite/webapps/__x_protocol/
tomcat/sandbox/tomcat-lite/webapps/__x_protocol/WEB-INF/
tomcat/sandbox/tomcat-lite/webapps/__x_protocol/WEB-INF/web.xml
Removed:
tomcat/sandbox/tomcat-lite/java/org/apache/coyote/
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/CoyoteAdapter.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/Host.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/HttpSessionImpl.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/Main.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/ServletFacade.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/WebappContextMapper.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/WebappFilterMapper.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/WebappServletMapper.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/WebappSessionManager.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/servlets/ReloadServlet.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/webxml/
tomcat/sandbox/tomcat-lite/resources/coyote-servlet.MF
Modified:
tomcat/sandbox/tomcat-lite/build.xml
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/FilterChainImpl.java
tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/FilterConfigImpl.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/RequestDispatcherImpl.java

tomcat/sandbox/tomcat-lite/java/org/apache/tomcat/lite/ServletCon

parameters in URL path segments

2006-08-21 Thread James Berry

Guys,

Sorry to open up this subject again. I've just read the mails in this  
thread:


http://marc.theaimsgroup.com/?l=tomcat-dev&m=115344110306194&w=2
http://marc.theaimsgroup.com/?l=tomcat-dev&m=115346837428224&w=2

Though I can't say I paid particular attention to the jkmount  
situation (and so I can't testify as to how treatment of such  
parameters might affect that), I can say that I'd like to be able to  
use ;parameter=value in my path segments in a tomcat environment:


http://example.com/this;biz=bar;foo/that;v=1.1/whatever

To me, this looks completely valid per rfc 2396, 2616, and 3986, and  
it's a surprise to me that tomcat strips any path following the first  
such parameter.


I would like to see tomcat essentially ignore the fact that ';'  
exists in a path segment, and pass it on into the servlet unmodified  
to do with as it pleases.


I'm inspired by the following paragraph in G.4 of rfc 2396:

Extensive testing of current client applications demonstrated that
   the majority of deployed systems do not use the ";" character to
   indicate trailing parameter information, and that the presence of a
   semicolon in a path segment does not affect the relative parsing of
   that segment.  Therefore, parameters have been removed as a separate
   component and may now appear in any path segment.  Their influence
   has been removed from the algorithm for resolving a relative URI
   reference.  The resolution examples in Appendix C have been modified
   to reflect this change.

And also by the following from rfc 3986:

   Aside from dot-segments in hierarchical paths, a path segment is
   considered opaque by the generic syntax.  URI producing applications
   often use the reserved characters allowed in a segment to delimit
   scheme-specific or dereference-handler-specific subcomponents.  For
   example, the semicolon (";") and equals ("=") reserved characters  
are

   often used to delimit parameters and parameter values applicable to
   that segment.  The comma (",") reserved character is often used for
   similar purposes.  For example, one URI producer might use a segment
   such as "name;v=1.1" to indicate a reference to version 1.1 of
   "name", whereas another might use a segment such as "name,1.1" to
   indicate the same.  Parameter types may be defined by scheme- 
specific
   semantics, but in most cases the syntax of a parameter is  
specific to

   the implementation of the URI's dereferencing algorithm.
Note that the segment syntax in rfc 3986 explicitly allows sub-delims  
(through pchar), of which ';' is but one.


James

DO NOT REPLY [Bug 40272] - classloader definition in server.xml is not properly parsed

2006-08-21 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=40272


[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE




--- Additional Comments From [EMAIL PROTECTED]  2006-08-22 01:44 ---
Although the error messages differ, this is in fact a duplicate. The problem is
that the parent clasloader is not set so any classes that should be loaded from
the shared classloader or higher fail.

*** This bug has been marked as a duplicate of 39704 ***

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 39704] - context with privileged="true" do not setup properly inner loaders

2006-08-21 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39704





--- Additional Comments From [EMAIL PROTECTED]  2006-08-22 01:44 ---
*** Bug 40272 has been marked as a duplicate of this bug. ***

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 36852] - Custom Webapp loaders don't correctly honor context's privileged="true" attribute

2006-08-21 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36852


[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||DUPLICATE




--- Additional Comments From [EMAIL PROTECTED]  2006-08-22 02:02 ---


*** This bug has been marked as a duplicate of 39704 ***

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 39704] - context with privileged="true" do not setup properly inner loaders

2006-08-21 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39704


[EMAIL PROTECTED] changed:

   What|Removed |Added

 CC||[EMAIL PROTECTED]




--- Additional Comments From [EMAIL PROTECTED]  2006-08-22 02:02 ---
*** Bug 36852 has been marked as a duplicate of this bug. ***

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



DO NOT REPLY [Bug 39704] - context with privileged="true" do not setup properly inner loaders

2006-08-21 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39704


[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEEDINFO|NEW




--- Additional Comments From [EMAIL PROTECTED]  2006-08-22 02:04 ---
Problem is due to the way custom loaders are handled on start-up. I can
re-produce it and am working on a fix.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: parameters in URL path segments

2006-08-21 Thread James Berry


On Aug 21, 2006, at 6:26 PM, James Berry wrote:


Guys,

Sorry to open up this subject again. I've just read the mails in  
this thread:


http://marc.theaimsgroup.com/?l=tomcat-dev&m=115344110306194&w=2
http://marc.theaimsgroup.com/?l=tomcat-dev&m=115346837428224&w=2

Though I can't say I paid particular attention to the jkmount  
situation (and so I can't testify as to how treatment of such  
parameters might affect that), I can say that I'd like to be able  
to use ;parameter=value in my path segments in a tomcat environment:


http://example.com/this;biz=bar;foo/that;v=1.1/whatever

To me, this looks completely valid per rfc 2396, 2616, and 3986,  
and it's a surprise to me that tomcat strips any path following the  
first such parameter.


I would like to see tomcat essentially ignore the fact that ';'  
exists in a path segment, and pass it on into the servlet  
unmodified to do with as it pleases.


In fact, I don't see any motivation for any special handling of  
semicolon vs any other of the other sub-delims characters, none of  
which tomcat does anything special with. Comma and Plus are allowed  
in path segments, for instance; why is semicolon treated differently?  
The more recent RFCs say that there is nothing special that the  
server/container should do with such a character when it appears in a  
path segment.


Obviously, of course, there would be places where it would be plain  
wrong to place such a parameter/character (if it didn't map to a  
servlet, or to a file, or...) but there are other places (in extra  
path segments in pathInfo, for instance) where the interpretation of  
such characters should NOT BE made by the server, but by the ultimate  
consumer of those bits. Therefore, the server should simply not place  
any special meaning on such characters in any path segment.


James



I'm inspired by the following paragraph in G.4 of rfc 2396:

Extensive testing of current client applications demonstrated that
   the majority of deployed systems do not use the ";" character to
   indicate trailing parameter information, and that the presence of a
   semicolon in a path segment does not affect the relative parsing of
   that segment.  Therefore, parameters have been removed as a  
separate

   component and may now appear in any path segment.  Their influence
   has been removed from the algorithm for resolving a relative URI
   reference.  The resolution examples in Appendix C have been  
modified

   to reflect this change.

And also by the following from rfc 3986:

   Aside from dot-segments in hierarchical paths, a path segment is
   considered opaque by the generic syntax.  URI producing  
applications

   often use the reserved characters allowed in a segment to delimit
   scheme-specific or dereference-handler-specific subcomponents.  For
   example, the semicolon (";") and equals ("=") reserved  
characters are

   often used to delimit parameters and parameter values applicable to
   that segment.  The comma (",") reserved character is often used for
   similar purposes.  For example, one URI producer might use a  
segment

   such as "name;v=1.1" to indicate a reference to version 1.1 of
   "name", whereas another might use a segment such as "name,1.1" to
   indicate the same.  Parameter types may be defined by scheme- 
specific
   semantics, but in most cases the syntax of a parameter is  
specific to

   the implementation of the URI's dereferencing algorithm.
Note that the segment syntax in rfc 3986 explicitly allows sub- 
delims (through pchar), of which ';' is but one.


James



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]