You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by BugRat Mail System <to...@cortexity.com> on 2000/10/09 18:28:46 UTC
BugRat Report #236 has been filed.
Bug report #236 has just been filed.
You can view the report at the following URL:
<http://znutar.cortexity.com:8888/BugRatViewer/ShowReport/236>
REPORT #236 Details.
Project: Tomcat
Category: Bug Report
SubCategory: New Bug Report
Class: swbug
State: received
Priority: medium
Severity: serious
Confidence: public
Environment:
Release: Tomcat 3.2 beta 4
JVM Release: java version "1.2.2" Classic VM (build JDK-1.2.2-001, native threads, symcjit)
Operating System: WinNT
OS Release: 4.0SP6
Platform: ia32
Synopsis:
Multiple HTTP message-header fields with the same field-name show up only one in the ServletRequest
Description:
The following HTTP Request:
2000-10-10 15:29:30 [11] DEBUG: data: 47 45 54 20 2f 77 70 73 GET /wps
2000-10-10 15:29:30 [11] DEBUG: data: 2f 20 48 54 54 50 2f 31 / HTTP/1
2000-10-10 15:29:30 [11] DEBUG: data: 2e 31 0d 0a 48 6f 73 74 .1..Host
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 6a 70 6f 3a 38 30 : jpo:80
2000-10-10 15:29:30 [11] DEBUG: data: 38 31 0d 0a 41 63 63 65 81..Acce
2000-10-10 15:29:30 [11] DEBUG: data: 70 74 2d 43 68 61 72 73 pt-Chars
2000-10-10 15:29:30 [11] DEBUG: data: 65 74 3a 20 75 74 66 2d et: utf-
2000-10-10 15:29:30 [11] DEBUG: data: 38 0d 0a 41 63 63 65 70 8..Accep
2000-10-10 15:29:30 [11] DEBUG: data: 74 2d 43 68 61 72 73 65 t-Charse
2000-10-10 15:29:30 [11] DEBUG: data: 74 3a 20 69 73 6f 2d 38 t: iso-8
2000-10-10 15:29:30 [11] DEBUG: data: 38 35 39 2d 31 0d 0a 41 859-1..A
2000-10-10 15:29:30 [11] DEBUG: data: 63 63 65 70 74 2d 43 68 ccept-Ch
2000-10-10 15:29:30 [11] DEBUG: data: 61 72 73 65 74 3a 20 69 arset: i
2000-10-10 15:29:30 [11] DEBUG: data: 73 6f 2d 31 30 36 34 36 so-10646
2000-10-10 15:29:30 [11] DEBUG: data: 2d 75 63 73 2d 32 0d 0a -ucs-2..
2000-10-10 15:29:30 [11] DEBUG: data: 41 63 63 65 70 74 3a 20 Accept:
2000-10-10 15:29:30 [11] DEBUG: data: 61 70 70 6c 69 63 61 74 applicat
2000-10-10 15:29:30 [11] DEBUG: data: 69 6f 6e 2f 76 6e 64 2e ion/vnd.
2000-10-10 15:29:30 [11] DEBUG: data: 77 61 70 2e 77 6d 6c 63 wap.wmlc
2000-10-10 15:29:30 [11] DEBUG: data: 0d 0a 41 63 63 65 70 74 ..Accept
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 61 70 70 6c 69 63 : applic
2000-10-10 15:29:30 [11] DEBUG: data: 61 74 69 6f 6e 2f 76 6e ation/vn
2000-10-10 15:29:30 [11] DEBUG: data: 64 2e 77 61 70 2e 77 6d d.wap.wm
2000-10-10 15:29:30 [11] DEBUG: data: 6c 73 63 72 69 70 74 63 lscriptc
2000-10-10 15:29:30 [11] DEBUG: data: 0d 0a 41 63 63 65 70 74 ..Accept
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 69 6d 61 67 65 2f : image/
2000-10-10 15:29:30 [11] DEBUG: data: 76 6e 64 2e 77 61 70 2e vnd.wap.
2000-10-10 15:29:30 [11] DEBUG: data: 77 62 6d 70 0d 0a 41 63 wbmp..Ac
2000-10-10 15:29:30 [11] DEBUG: data: 63 65 70 74 3a 20 69 6d cept: im
2000-10-10 15:29:30 [11] DEBUG: data: 61 67 65 2f 67 69 66 0d age/gif.
2000-10-10 15:29:30 [11] DEBUG: data: 0a 55 73 65 72 2d 41 67 .User-Ag
2000-10-10 15:29:30 [11] DEBUG: data: 65 6e 74 3a 20 4e 6f 6b ent: Nok
2000-10-10 15:29:30 [11] DEBUG: data: 69 61 2d 57 41 50 2d 54 ia-WAP-T
2000-10-10 15:29:30 [11] DEBUG: data: 6f 6f 6c 6b 69 74 2f 31 oolkit/1
2000-10-10 15:29:30 [11] DEBUG: data: 2e 32 0d 0a 41 63 63 65 .2..Acce
2000-10-10 15:29:30 [11] DEBUG: data: 70 74 3a 20 74 65 78 74 pt: text
2000-10-10 15:29:30 [11] DEBUG: data: 2f 76 6e 64 2e 77 61 70 /vnd.wap
2000-10-10 15:29:30 [11] DEBUG: data: 2e 77 6d 6c 0d 0a 41 63 .wml..Ac
2000-10-10 15:29:30 [11] DEBUG: data: 63 65 70 74 3a 20 74 65 cept: te
2000-10-10 15:29:30 [11] DEBUG: data: 78 74 2f 76 6e 64 2e 77 xt/vnd.w
2000-10-10 15:29:30 [11] DEBUG: data: 61 70 2e 77 6d 6c 73 63 ap.wmlsc
2000-10-10 15:29:30 [11] DEBUG: data: 72 69 70 74 0d 0a 41 63 ript..Ac
2000-10-10 15:29:30 [11] DEBUG: data: 63 65 70 74 2d 43 68 61 cept-Cha
2000-10-10 15:29:30 [11] DEBUG: data: 72 73 65 74 3a 20 49 53 rset: IS
2000-10-10 15:29:30 [11] DEBUG: data: 4f 2d 38 38 35 39 2d 32 O-8859-2
2000-10-10 15:29:30 [11] DEBUG: data: 0d 0a 41 63 63 65 70 74 ..Accept
2000-10-10 15:29:30 [11] DEBUG: data: 2d 43 68 61 72 73 65 74 -Charset
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 49 53 4f 2d 38 38 : ISO-88
2000-10-10 15:29:30 [11] DEBUG: data: 35 39 2d 33 0d 0a 41 63 59-3..Ac
2000-10-10 15:29:30 [11] DEBUG: data: 63 65 70 74 2d 43 68 61 cept-Cha
2000-10-10 15:29:30 [11] DEBUG: data: 72 73 65 74 3a 20 49 53 rset: IS
2000-10-10 15:29:30 [11] DEBUG: data: 4f 2d 38 38 35 39 2d 34 O-8859-4
2000-10-10 15:29:30 [11] DEBUG: data: 0d 0a 41 63 63 65 70 74 ..Accept
2000-10-10 15:29:30 [11] DEBUG: data: 2d 43 68 61 72 73 65 74 -Charset
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 49 53 4f 2d 38 38 : ISO-88
2000-10-10 15:29:30 [11] DEBUG: data: 35 39 2d 35 0d 0a 41 63 59-5..Ac
2000-10-10 15:29:30 [11] DEBUG: data: 63 65 70 74 2d 43 68 61 cept-Cha
2000-10-10 15:29:30 [11] DEBUG: data: 72 73 65 74 3a 20 49 53 rset: IS
2000-10-10 15:29:30 [11] DEBUG: data: 4f 2d 38 38 35 39 2d 36 O-8859-6
2000-10-10 15:29:30 [11] DEBUG: data: 0d 0a 41 63 63 65 70 74 ..Accept
2000-10-10 15:29:30 [11] DEBUG: data: 2d 43 68 61 72 73 65 74 -Charset
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 49 53 4f 2d 38 38 : ISO-88
2000-10-10 15:29:30 [11] DEBUG: data: 35 39 2d 37 0d 0a 41 63 59-7..Ac
2000-10-10 15:29:30 [11] DEBUG: data: 63 65 70 74 2d 43 68 61 cept-Cha
2000-10-10 15:29:30 [11] DEBUG: data: 72 73 65 74 3a 20 49 53 rset: IS
2000-10-10 15:29:30 [11] DEBUG: data: 4f 2d 38 38 35 39 2d 38 O-8859-8
2000-10-10 15:29:30 [11] DEBUG: data: 0d 0a 41 63 63 65 70 74 ..Accept
2000-10-10 15:29:30 [11] DEBUG: data: 2d 43 68 61 72 73 65 74 -Charset
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 49 53 4f 2d 38 38 : ISO-88
2000-10-10 15:29:30 [11] DEBUG: data: 35 39 2d 39 0d 0a 41 63 59-9..Ac
2000-10-10 15:29:30 [11] DEBUG: data: 63 65 70 74 2d 43 68 61 cept-Cha
2000-10-10 15:29:30 [11] DEBUG: data: 72 73 65 74 3a 20 57 49 rset: WI
2000-10-10 15:29:30 [11] DEBUG: data: 4e 44 4f 57 53 2d 31 32 NDOWS-12
2000-10-10 15:29:30 [11] DEBUG: data: 35 31 0d 0a 41 63 63 65 51..Acce
2000-10-10 15:29:30 [11] DEBUG: data: 70 74 2d 43 68 61 72 73 pt-Chars
2000-10-10 15:29:30 [11] DEBUG: data: 65 74 3a 20 57 49 4e 44 et: WIND
2000-10-10 15:29:30 [11] DEBUG: data: 4f 57 53 2d 31 32 35 33 OWS-1253
2000-10-10 15:29:30 [11] DEBUG: data: 0d 0a 41 63 63 65 70 74 ..Accept
2000-10-10 15:29:30 [11] DEBUG: data: 2d 43 68 61 72 73 65 74 -Charset
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 57 49 4e 44 4f 57 : WINDOW
2000-10-10 15:29:30 [11] DEBUG: data: 53 2d 31 32 35 37 0d 0a S-1257..
2000-10-10 15:29:30 [11] DEBUG: data: 41 63 63 65 70 74 2d 43 Accept-C
2000-10-10 15:29:30 [11] DEBUG: data: 68 61 72 73 65 74 3a 20 harset:
2000-10-10 15:29:30 [11] DEBUG: data: 4b 4f 49 38 2d 52 0d 0a KOI8-R..
2000-10-10 15:29:30 [11] DEBUG: data: 58 5f 4e 65 74 77 6f 72 X_Networ
2000-10-10 15:29:30 [11] DEBUG: data: 6b 5f 49 6e 66 6f 3a 20 k_Info:
2000-10-10 15:29:30 [11] DEBUG: data: 31 37 32 2e 32 30 2e 32 172.20.2
2000-10-10 15:29:30 [11] DEBUG: data: 34 32 2e 32 37 0d 0a 58 42.27..X
2000-10-10 15:29:30 [11] DEBUG: data: 2d 57 41 50 2d 43 6c 69 -WAP-Cli
2000-10-10 15:29:30 [11] DEBUG: data: 65 6e 74 2d 53 44 55 2d ent-SDU-
2000-10-10 15:29:30 [11] DEBUG: data: 53 69 7a 65 3a 20 36 35 Size: 65
2000-10-10 15:29:30 [11] DEBUG: data: 35 33 35 0d 0a 56 69 61 535..Via
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 57 41 50 2f 31 2e : WAP/1.
2000-10-10 15:29:30 [11] DEBUG: data: 31 20 77 70 73 73 65 72 1 wpsser
2000-10-10 15:29:30 [11] DEBUG: data: 76 31 2e 63 6f 6e 64 61 v1.conda
2000-10-10 15:29:30 [11] DEBUG: data: 74 2e 64 65 20 28 4b 61 t.de (Ka
2000-10-10 15:29:30 [11] DEBUG: data: 6e 6e 65 6c 2f 63 76 73 nnel/cvs
2000-10-10 15:29:30 [11] DEBUG: data: 29 0d 0a 58 2d 57 41 50 )..X-WAP
2000-10-10 15:29:30 [11] DEBUG: data: 2d 47 61 74 65 77 61 79 -Gateway
2000-10-10 15:29:30 [11] DEBUG: data: 3a 20 4b 61 6e 6e 65 6c : Kannel
2000-10-10 15:29:30 [11] DEBUG: data: 2f 63 76 73 0d 0a 58 2d /cvs..X-
2000-10-10 15:29:30 [11] DEBUG: data: 57 41 50 2d 53 65 73 73 WAP-Sess
2000-10-10 15:29:30 [11] DEBUG: data: 69 6f 6e 2d 49 44 3a 20 ion-ID:
2000-10-10 15:29:30 [11] DEBUG: data: 32 0d 0a 0d 0a 2....
generates the following HttpServletRequest:
<09.10.2000 18:38:58:747><DEBUG><de.condat.wps.request.WPSServletRequest><Header <User-Agent> : <Nokia-WAP-Toolkit/1.2>>
<09.10.2000 18:38:58:757><DEBUG><de.condat.wps.request.WPSServletRequest><Header <Accept-Charset> : <utf-8>>
<09.10.2000 18:38:58:757><DEBUG><de.condat.wps.request.WPSServletRequest><Header <Host> : <jpo:8081>>
<09.10.2000 18:38:58:767><DEBUG><de.condat.wps.request.WPSServletRequest><Header <X_Network_Info> : <172.20.242.27>>
<09.10.2000 18:38:58:767><DEBUG><de.condat.wps.request.WPSServletRequest><Header <Via> : <WAP/1.1 wpsserv1.condat.de (Kannel/cvs)>>
<09.10.2000 18:38:58:777><DEBUG><de.condat.wps.request.WPSServletRequest><Header <X-WAP-Gateway> : <Kannel/cvs>>
<09.10.2000 18:38:58:777><DEBUG><de.condat.wps.request.WPSServletRequest><Header <Accept> : <application/vnd.wap.wmlc>>
<09.10.2000 18:38:58:777><DEBUG><de.condat.wps.request.WPSServletRequest><Header <X-WAP-Client-SDU-Size> : <65535>>
<09.10.2000 18:38:58:787><DEBUG><de.condat.wps.request.WPSServletRequest><Header <X-WAP-Session-ID> : <4>>
Java code:
for (enum = theServletRequest.getHeaderNames(); enum.hasMoreElements() ;) {
String header = (String)(enum.nextElement());
String value = theServletRequest.getHeader(header);
Logger.debug (this, "Header <" + header + "> : <" + value + ">");
}
The problem is obvious: only the first occurence of multiple
message headers with the same field name can be accessed.
RFC2616, page 22 states:
Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire
field-value for that header field is defined as a comma-separated list [i.e., #(values)].
This is certainly true for the Accept and Accept-Charset
header fields (see RFC2616, page 62/63).