Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 68800 invoked from network); 8 Jun 2006 12:28:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 8 Jun 2006 12:28:41 -0000 Received: (qmail 14092 invoked by uid 500); 8 Jun 2006 12:28:37 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 14026 invoked by uid 500); 8 Jun 2006 12:28:36 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 14015 invoked by uid 99); 8 Jun 2006 12:28:36 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Jun 2006 05:28:36 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of kevan.miller@gmail.com designates 64.233.184.224 as permitted sender) Received: from [64.233.184.224] (HELO wr-out-0506.google.com) (64.233.184.224) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Jun 2006 05:28:35 -0700 Received: by wr-out-0506.google.com with SMTP id i30so489938wra for ; Thu, 08 Jun 2006 05:28:15 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:mime-version:in-reply-to:references:content-type:message-id:content-transfer-encoding:from:subject:date:to:x-mailer; b=Hd/Ah98/XouD88IVtqV+pD1km1Mu9NVRN6LOxTXnrsUgpvS3H2Fv3bBzkCG9PfsdDVty4pPoj6GlF8KBdDBaSaxyFtPo824gp3tch06HysOUhd6UCBo4MBVOGJmYNlmPGlKqoZowByz8MSd8NdXVRQK5kWENtxXakBXewIxlVKU= Received: by 10.54.128.19 with SMTP id a19mr654038wrd; Thu, 08 Jun 2006 05:28:11 -0700 (PDT) Received: from ?192.168.123.140? ( [71.70.213.94]) by mx.gmail.com with ESMTP id 26sm2470556wra.2006.06.08.05.28.10; Thu, 08 Jun 2006 05:28:11 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v750) In-Reply-To: <20060607152148.563CA1A9842@eris.apache.org> References: <20060607152148.563CA1A9842@eris.apache.org> Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed Message-Id: Content-Transfer-Encoding: quoted-printable From: Kevan Miller Subject: Re: svn commit: r412426 - in /geronimo/specs/trunk/geronimo-spec-javamail/src: main/java/javax/mail/internet/ main/java/org/apache/geronimo/mail/util/ test/java/javax/mail/internet/ Date: Thu, 8 Jun 2006 08:28:09 -0400 To: dev@geronimo.apache.org X-Mailer: Apple Mail (2.750) X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Rick, If you're updating javamail, you need to update the version number =20 for the javamail spec. --kevan On Jun 7, 2006, at 11:21 AM, rickmcguire@apache.org wrote: > Author: rickmcguire > Date: Wed Jun 7 08:21:46 2006 > New Revision: 412426 > > URL: http://svn.apache.org/viewvc?rev=3D412426&view=3Drev > Log: > GERONIMO-2087 MimeUtility.encodeWord()/encodeText() have some errors. > > > Modified: > geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/=20= > mail/internet/MimeUtility.java > geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/org/=20 > apache/geronimo/mail/util/Base64Encoder.java > geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/org/=20 > apache/geronimo/mail/util/RFC2231Encoder.java > geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/=20= > mail/internet/MimeUtilityTest.java > > Modified: geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/=20= > javax/mail/internet/MimeUtility.java > URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-=20 > spec-javamail/src/main/java/javax/mail/internet/MimeUtility.java?=20 > rev=3D412426&r1=3D412425&r2=3D412426&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 > =3D=3D=3D=3D=3D=3D=3D=3D > --- geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/=20= > mail/internet/MimeUtility.java (original) > +++ geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/javax/=20= > mail/internet/MimeUtility.java Wed Jun 7 08:21:46 2006 > @@ -554,7 +554,7 @@ > if (encoding.equalsIgnoreCase("B")) { > encoder =3D "base64"; > } > - else if (encoding.equalsIgnoreCase("G")) { > + else if (encoding.equalsIgnoreCase("Q")) { > encoder =3D "quoted-printable"; > } > else { > > Modified: geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/=20= > org/apache/geronimo/mail/util/Base64Encoder.java > URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-=20 > spec-javamail/src/main/java/org/apache/geronimo/mail/util/=20 > Base64Encoder.java?rev=3D412426&r1=3D412425&r2=3D412426&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 > =3D=3D=3D=3D=3D=3D=3D=3D > --- geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/org/=20 > apache/geronimo/mail/util/Base64Encoder.java (original) > +++ geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/org/=20 > apache/geronimo/mail/util/Base64Encoder.java Wed Jun 7 08:21:46 2006 > @@ -515,21 +515,22 @@ > int readCount =3D in.read(inBuffer); > // did we get a full triplet? that's an easy encoding. > if (readCount =3D=3D 3) { > - byte a1 =3D (byte)(inBuffer[0] & 0xff); > - byte a2 =3D (byte)(inBuffer[1] & 0xff); > - byte a3 =3D (byte)(inBuffer[2] & 0xff); > + int a1 =3D inBuffer[0] & 0xff; > + int a2 =3D inBuffer[1] & 0xff; > + int a3 =3D inBuffer[2] & 0xff; > > out.append((char)encodingTable[(a1 >>> 2) & 0x3f]); > out.append((char)encodingTable[((a1 << 4) | (a2 =20 > >>> 4)) & 0x3f]); > out.append((char)encodingTable[((a2 << 2) | (a3 =20 > >>> 6)) & 0x3f]); > out.append((char)encodingTable[a3 & 0x3f]); > + > } > else if (readCount <=3D 0) { > // eof condition, don'e entirely. > return; > } > else if (readCount =3D=3D 1) { > - byte a1 =3D (byte)(inBuffer[0] & 0xff); > + int a1 =3D inBuffer[0] & 0xff; > out.append((char)encodingTable[(a1 >>> 2) & 0x3f]); > out.append((char)encodingTable[(a1 << 4) & 0x3f]); > out.append((char)padding); > @@ -537,8 +538,8 @@ > return; > } > else if (readCount =3D=3D 2) { > - byte a1 =3D (byte)(inBuffer[0] & 0xff); > - byte a2 =3D (byte)(inBuffer[1] & 0xff); > + int a1 =3D inBuffer[0] & 0xff; > + int a2 =3D inBuffer[1] & 0xff; > > out.append((char)encodingTable[(a1 >>> 2) & 0x3f]); > out.append((char)encodingTable[((a1 << 4) | (a2 =20 > >>> 4)) & 0x3f]); > > Modified: geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/=20= > org/apache/geronimo/mail/util/RFC2231Encoder.java > URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-=20 > spec-javamail/src/main/java/org/apache/geronimo/mail/util/=20 > RFC2231Encoder.java?rev=3D412426&r1=3D412425&r2=3D412426&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 > =3D=3D=3D=3D=3D=3D=3D=3D > --- geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/org/=20 > apache/geronimo/mail/util/RFC2231Encoder.java (original) > +++ geronimo/specs/trunk/geronimo-spec-javamail/src/main/java/org/=20 > apache/geronimo/mail/util/RFC2231Encoder.java Wed Jun 7 08:21:46 2006 > @@ -52,7 +52,7 @@ > (byte)'8', (byte)'9', (byte)'A', (byte)'B', (byte)'C', =20= > (byte)'D', (byte)'E', (byte)'F' > }; > > - protected String DEFAULT_SPECIALS =3D " *\\%"; > + protected String DEFAULT_SPECIALS =3D " *'%"; > protected String specials =3D DEFAULT_SPECIALS; > > /* > @@ -92,11 +92,11 @@ > int bytesWritten =3D 0; > for (int i =3D off; i < (off + length); i++) > { > - byte ch =3D data[i]; > + int ch =3D data[i] & 0xff; > // character tha must be encoded? Prefix with a '%' =20 > and encode in hex. > if (ch <=3D 32 || ch >=3D 127 || specials.indexOf(ch) !=3D = =20 > -1) { > out.write((byte)'%'); > - out.write(encodingTable[(ch >> 4)]); > + out.write(encodingTable[ch >> 4]); > out.write(encodingTable[ch & 0xf]); > bytesWritten +=3D 3; > } > > Modified: geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/=20= > javax/mail/internet/MimeUtilityTest.java > URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-=20 > spec-javamail/src/test/java/javax/mail/internet/=20 > MimeUtilityTest.java?rev=3D412426&r1=3D412425&r2=3D412426&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=20 > =3D=3D=3D=3D=3D=3D=3D=3D > --- geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/=20= > mail/internet/MimeUtilityTest.java (original) > +++ geronimo/specs/trunk/geronimo-spec-javamail/src/test/java/javax/=20= > mail/internet/MimeUtilityTest.java Wed Jun 7 08:21:46 2006 > @@ -83,4 +83,43 @@ > } > } > > + > + public void testEncodeWord() throws Exception { > + assertEquals("abc", MimeUtility.encodeWord("abc")); > + // default code page dependent, hard to directly test the =20 > encoded results > + assertEquals(" h=E9! =E0=E8=F4u !!!", MimeUtility.decodeWord=20= > (MimeUtility.encodeWord(" h=E9! =E0=E8=F4u !!!"))); > + > + String encoded =3D MimeUtility.encodeWord(" h=E9! =E0=E8=F4u = !!!", =20 > "UTF-8", "Q"); > + assertEquals("=3D?UTF-8?Q?_h=3DC3=3DA9!_=3DC3=3DA0=3DC3=3DA8=3D= C3=3DB4u_!!!?=20 > =3D", encoded); > + assertEquals(" h=E9! =E0=E8=F4u !!!", MimeUtility.decodeWord=20= > (encoded)); > + > + encoded =3D MimeUtility.encodeWord(" h=E9! =E0=E8=F4u !!!", = "UTF-8", =20 > "B"); > + assertEquals("=3D?UTF-8?B?IGjDqSEgw6DDqMO0dSAhISE=3D?=3D", =20= > encoded); > + assertEquals(" h=E9! =E0=E8=F4u !!!", MimeUtility.decodeWord=20= > (encoded)); > + } > + > + > + public void testEncodeText() throws Exception { > + assertEquals("abc", MimeUtility.encodeWord("abc")); > + // default code page dependent, hard to directly test the =20 > encoded results > + assertEquals(" h=E9! =E0=E8=F4u !!!", MimeUtility.decodeText=20= > (MimeUtility.encodeText(" h=E9! =E0=E8=F4u !!!"))); > + > + String encoded =3D MimeUtility.encodeText(" h=E9! =E0=E8=F4u = !!!", =20 > "UTF-8", "Q"); > + assertEquals("=3D?UTF-8?Q?_h=3DC3=3DA9!_=3DC3=3DA0=3DC3=3DA8=3D= C3=3DB4u_!!!?=20 > =3D", encoded); > + assertEquals(" h=E9! =E0=E8=F4u !!!", MimeUtility.decodeText=20= > (encoded)); > + > + encoded =3D MimeUtility.encodeText(" h=E9! =E0=E8=F4u !!!", = "UTF-8", =20 > "B"); > + assertEquals("=3D?UTF-8?B?IGjDqSEgw6DDqMO0dSAhISE=3D?=3D", =20= > encoded); > + assertEquals(" h=E9! =E0=E8=F4u !!!", MimeUtility.decodeText=20= > (encoded)); > + } > + > + > + public void testQuote() throws Exception { > + assertEquals("abc", MimeUtility.quote("abc", "&*%")); > + assertEquals("\"abc&\"", MimeUtility.quote("abc&", "&*%")); > + assertEquals("\"abc\\\"\"", MimeUtility.quote("abc\"", "&*=20 > %")); > + assertEquals("\"abc\\\\\"", MimeUtility.quote("abc\\", "&*=20 > %")); > + assertEquals("\"abc\\\r\"", MimeUtility.quote("abc\r", "&*=20 > %")); > + assertEquals("\"abc\\\n\"", MimeUtility.quote("abc\n", "&*=20 > %")); > + } > } > >