You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2004/10/19 17:28:13 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector CoyoteAdapter.java
remm 2004/10/19 08:28:13
Modified: catalina/src/share/org/apache/catalina/connector
CoyoteAdapter.java
Log:
- Optimize session IDs conversion to String.
Revision Changes Path
1.7 +28 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java
Index: CoyoteAdapter.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- CoyoteAdapter.java 4 Oct 2004 09:25:11 -0000 1.6
+++ CoyoteAdapter.java 19 Oct 2004 15:28:13 -0000 1.7
@@ -366,6 +366,7 @@
// Override anything requested in the URL
if (!request.isRequestedSessionIdFromCookie()) {
// Accept only the first session id cookie
+ convertMB(scookie.getValue());
request.setRequestedSessionId
(scookie.getValue().toString());
request.setRequestedSessionCookie(true);
@@ -376,6 +377,7 @@
} else {
if (!request.isRequestedSessionIdValid()) {
// Replace the session id until one is valid
+ convertMB(scookie.getValue());
request.setRequestedSessionId
(scookie.getValue().toString());
}
@@ -432,6 +434,31 @@
cbuf[i] = (char) (bbuf[i + start] & 0xff);
}
uri.setChars(cbuf, 0, bc.getLength());
+
+ }
+
+
+ /**
+ * Character conversion of the a US-ASCII MessageBytes.
+ */
+ protected void convertMB(MessageBytes mb) {
+
+ // This is of course only meaningful for bytes
+ if (mb.getType() != MessageBytes.T_BYTES)
+ return;
+
+ ByteChunk bc = mb.getByteChunk();
+ CharChunk cc = mb.getCharChunk();
+ cc.allocate(bc.getLength(), -1);
+
+ // Default encoding: fast conversion
+ byte[] bbuf = bc.getBuffer();
+ char[] cbuf = cc.getBuffer();
+ int start = bc.getStart();
+ for (int i = 0; i < bc.getLength(); i++) {
+ cbuf[i] = (char) (bbuf[i + start] & 0xff);
+ }
+ mb.setChars(cbuf, 0, bc.getLength());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org