From: Kris Krueger <krisk@microsoft.com>
To: Joakim Erdfelt <joakim@intalio.com>
CC: Greg Wilkins <gregw@intalio.com>, Philippe Le Hegaret <plh@w3.org>,
	"Michael[tm] Smith" <mike@w3.org>, Arthur Barstow <art.barstow@nokia.com>
Subject: RE: Jetty Bug?
Thread-Topic: Jetty Bug?
Thread-Index: Ac2snbJo8cfgtwyhRBGuaWKi9WLESgARC9sAAABXeIAAAE8gAAAMi+XAAB6gmAAABZjlAAAMFHVQ
Date: Thu, 18 Oct 2012 21:39:06 +0000
References: <0A605FCDA3A4DC45A98B0DDD1C5351A70383DB8D@TK5EX14MBXW601.wingroup.windeploy.ntdev.microsoft.com>
	<CAH_y2NFdL10qENKhRN2h7rmU5YF0ogKM_VwL7Nk0HpJcw3y36A@mail.gmail.com>
	<CAG4zZZB8PkV9vZi2nUcHqr-SmBGA3FeC96A_x8KavVtz4H7w-Q@mail.gmail.com>
	<CAG4zZZB_o8g5QkU7i0xNOO7husOxqWrQh3bp_LLZx4+171+SvQ@mail.gmail.com>
	<0A605FCDA3A4DC45A98B0DDD1C5351A70383DEAD@TK5EX14MBXW601.wingroup.windeploy.ntdev.microsoft.com>
	<CAG4zZZBL+u0q5-gjY3jKp+gQtfOW8SYK3dxQU0=E8NZmTEYkRQ@mail.gmail.com>
 <CAG4zZZBCofA5hXSUQGEWbns=KUj8yoM126ftE6fL==v6nyNt9A@mail.gmail.com>
In-Reply-To: <CAG4zZZBCofA5hXSUQGEWbns=KUj8yoM126ftE6fL==v6nyNt9A@mail.gmail.com>
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Content-Type: multipart/alternative;
	boundary="_000_6971787274726580737178666671697374706979657474717267777_"
MIME-Version: 1.0

--_000_6971787274726580737178666671697374706979657474717267777_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Indeed ED A0 87 is correct

I made and error when I manually did the utf-8 encoding



\u D807        =3D=3D0110 1100 0000 00111


CORRECT =3D=3D 1110 1101 10 100000 10 000111

WRONG    =3D=3D 1110 0110 10 110000 10 000111





From: Joakim Erdfelt [mailto:joakim@intalio.com]
Sent: Thursday, October 18, 2012 1:12 PM
To: Kris Krueger
Cc: Greg Wilkins; Philippe Le Hegaret; Michael[tm] Smith; Arthur Barstow
Subject: Re: Jetty Bug?



Other sources for "\ud807"



Online UTF8 test:

http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?input=3Dd807&mode=3Dhex



Python:

>>> u"\ud807".encode("utf8")

'\xed\xa0\x87'



Those 2 result in the 3 byte "Hex UTF-8 Bytes" of ED AO 87



I'm still trying to understand why I can't get the same results out of Java=
.




--

Joakim Erdfelt <joakim@intalio.com<mailto:joakim@intalio.com>>

www.webtide.com<http://www.webtide.com/>

Developer advice, services and support
from the Jetty & CometD experts.





On Thu, Oct 18, 2012 at 10:32 AM, Joakim Erdfelt <joakim@intalio.com<mailto=
:joakim@intalio.com>> wrote:

The unicode "\ud807" (or byte array [0xd8, 0x07]) (or binary [01101100 0000=
00111]) do not decode/encode/replace as E6B087 in java.



Here's some results of the experiments in pure java ...



        byte utf[] =3D new byte[] { (byte) 0xd8, 0x07 };

        String c =3D new String(utf, Charset.forName("UTF-8"));

        byte buf[] =3D c.getBytes();

        System.out.println("hex =3D " + asHex(buf));



hex =3D EF BF BD 07



        byte buf[] =3D "\ud807".getBytes(Charset.forName("UTF-8"));

        System.out.println("hex =3D " + asHex(buf));



hex =3D 3F





--

Joakim Erdfelt <joakim@intalio.com<mailto:joakim@intalio.com>>

www.webtide.com<http://www.webtide.com/>

Developer advice, services and support
from the Jetty & CometD experts.





On Wed, Oct 17, 2012 at 3:16 PM, Kris Krueger <krisk@microsoft.com<mailto:k=
risk@microsoft.com>> wrote:

Thanks for your response it looks like that test the Unicode replacment cha=
r in utf-8 form (e.g. \uFFFD).

Maybe you can try to see what occurs when you send \uD807 - which in UTF-8 =
would be E6B087?

\uD807 -> 3 bytes in UTF-8

\u D807  =3D=3D0110 1100 0000 00111

1110 0110 10 110000 10 000111

-Thx


From: Joakim Erdfelt [mailto:joakim@intalio.com<mailto:joakim@intalio.com>]
Sent: Wednesday, October 17, 2012 1:56 PM
To: Greg Wilkins
Cc: Kris Krueger; Philippe Le Hegaret; Michael[tm] Smith; Arthur Barstow
Subject: Re: Jetty Bug?


Also, the test webapp we use for testing can be found at https://github.com=
/jetty-project/jetty-autobahn-websocket-webapp

To use ...

Clone the repo
$ git clone git://github.com/jetty-project/jetty-autobahn-websocket-webapp.=
git<http://github.com/jetty-project/jetty-autobahn-websocket-webapp.git>

Build it
Note: you'll need Java JDK 7
$ cd jetty-autobahn-websocket-webapp
$ mvn clean install

Run it
$ mvn exec:exec

Test against it (sorry, no web UI)
ws://localhost:9001/


--
Joakim Erdfelt <joakim@intalio.com<mailto:joakim@intalio.com>>
www.webtide.com<http://www.webtide.com>
Developer advice, services and support
from the Jetty & CometD experts.


On Wed, Oct 17, 2012 at 1:47 PM, Joakim Erdfelt <joakim@intalio.com<mailto:=
joakim@intalio.com>> wrote:
There's not much information in that test report about what's going on.

Internally, we use the autobahn testsuite for testing our websocket support=
.
Here's an example of the testcase for this scenario with Jetty 9.0.0-SNAPSH=
OT.

http://joakim.erdfelt.com/jetty/autobahn/server-9.0.0-SNAPSHOT/jetty_9_0_0_=
snapshot_case_6_23_1.html

And the same one for Jetty 7.6.1 (the version of jetty you are testing agai=
nst)
http://joakim.erdfelt.com/jetty/autobahn/server-7.6.1/jetty_7_6_1_case_6_23=
_1.html

Btw, what is the license for the source files at http://w3c-test.org/webapp=
s/WebSockets/tests/jetty/ ?
Can I take them, update them for Jetty 9.0.0 and put the updates on github?


--
Joakim Erdfelt <joakim@intalio.com<mailto:joakim@intalio.com>>
www.webtide.com<http://www.webtide.com>
Developer advice, services and support

from the Jetty & CometD experts.


On Wed, Oct 17, 2012 at 1:37 PM, Greg Wilkins <gregw@intalio.com<mailto:gre=
gw@intalio.com>> wrote:
Hi Kris,

quick answer (without looking at the specifics of the issue),

I'm can help with the jetty-7 implementation, but I've also CC'd
Joakim Erdfelt, who has rewritten our websocket implementation for
jetty-9, so he can check we've not repeated any mistakes.

I'll look at the details of this issue later today (AU time).

cheers


On 18 October 2012 06:42, Kris Krueger <krisk@microsoft.com<mailto:krisk@mi=
crosoft.com>> wrote:
> Hello Greg,
>
> My name is Kris Krueger and I am the W3C WebSocket API Test Suite owner. =
 I CC'd a few folks from the W3C and Art the Web Apps Co-Chair for the Web =
Apps Working group so you don't think this is some random email :)
>
> The W3C WebApps Working Group has created a set of test to test support f=
or the W3C WebSocket API specification (http://www.w3.org/TR/websockets/) t=
o help browser interoperability.  One of the more recent changes to this sp=
ecification is how to handle an unpaired surrogate.  Browsers will no longe=
r throw an exception and instead just use the unicode replacement character=
 when this situation occurs.
>
> We are using Jetty (7.6.1.v20120215) on the W3C for testing and have come=
 across a bug in the Jetty server, which I'd like you to be aware of and ma=
ybe possible fix.
>
> Here is a pointer to the test case, the issue is that on line 29 the evt.=
reason comes back as '?' and not the replacement character.
>     http://www.w3c-test.org/webapps/WebSockets/tests/submissions/Microsof=
t/Close-reason-unpaired-surrogates.htm
>
> Would you be the right person to investigate this bug in Jetty?
>
> -Thanks!



--
Greg Wilkins <gregw@intalio.com<mailto:gregw@intalio.com>>
http://www.webtide.com
Developer advice and support from the Jetty & CometD experts.








--_000_6971787274726580737178666671697374706979657474717267777_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:m=3D"http://schema=
s.microsoft.com/office/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html=
40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"MS Mincho";
	panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
	{font-family:"MS Mincho";
	panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:"\@MS Mincho";
	panose-1:2 2 6 9 4 2 5 8 3 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#44546A;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";
	mso-ligatures:standard;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Indeed
</span><span style=3D"font-size:10.0pt;font-family:&quot;Calibri&quot;,&quo=
t;sans-serif&quot;;color:black">ED A0 87 is correct<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I made and error when I man=
ually did the utf-8 encoding
</span><span style=3D"font-size:10.0pt;font-family:&quot;Calibri&quot;,&quo=
t;sans-serif&quot;;color:black"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#44546A"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal">\u D807 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
=3D=3D0110 1100 0000 00111<o:p></o:p></p>
<p class=3D"MsoNormal"><br>
CORRECT =3D=3D 1110 1101 10 100000 10 000111<span style=3D"font-size:11.0pt=
;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#44546A"><o:p=
></o:p></span></p>
<p class=3D"MsoNormal">WRONG &nbsp;&nbsp;&nbsp;=3D=3D 1110 0110 10 110000 1=
0 000111<o:p></o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#44546A"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#44546A"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> Joakim E=
rdfelt [mailto:joakim@intalio.com]
<br>
<b>Sent:</b> Thursday, October 18, 2012 1:12 PM<br>
<b>To:</b> Kris Krueger<br>
<b>Cc:</b> Greg Wilkins; Philippe Le Hegaret; Michael[tm] Smith; Arthur Bar=
stow<br>
<b>Subject:</b> Re: Jetty Bug?<o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal">Other sources for &quot;\ud807&quot;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Online UTF8 test:<o:p></o:p></p>
</div>
<p class=3D"MsoNormal"><a href=3D"http://www.ltg.ed.ac.uk/~richard/utf-8.cg=
i?input=3Dd807&amp;mode=3Dhex">http://www.ltg.ed.ac.uk/~richard/utf-8.cgi?i=
nput=3Dd807&amp;mode=3Dhex</a><o:p></o:p></p>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Python:<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&gt;&gt;&gt; u&quot;\ud807&quot;.encode(&quot;utf8&q=
uot;)<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">'\xed\xa0\x87'<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Those 2 result in the 3 byte &quot;Hex UTF-8 Bytes&q=
uot; of ED AO 87<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">I'm still trying to understand why I can't get the s=
ame results out of Java.<o:p></o:p></p>
<div>
<p class=3D"MsoNormal"><br clear=3D"all">
<o:p></o:p></p>
<div>
<p class=3D"MsoNormal">--<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Joakim Erdfelt &lt;<a href=3D"mailto:joakim@intalio.=
com" target=3D"_blank">joakim@intalio.com</a>&gt;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><a href=3D"http://www.webtide.com/" target=3D"_blank=
">www.webtide.com</a><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Developer advice, services and support<br>
from the Jetty &amp; CometD experts.<o:p></o:p></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
<br>
<o:p></o:p></p>
<div>
<p class=3D"MsoNormal">On Thu, Oct 18, 2012 at 10:32 AM, Joakim Erdfelt &lt=
;<a href=3D"mailto:joakim@intalio.com" target=3D"_blank">joakim@intalio.com=
</a>&gt; wrote:<o:p></o:p></p>
<div>
<p class=3D"MsoNormal">The unicode &quot;\ud807&quot; (or byte array [0xd8,=
 0x07]) (or binary [01101100 000000111]) do not decode/encode/replace as&nb=
sp;E6B087 in java.<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Here's some results of the experiments in pure java =
...<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; byte utf[] =3D new byte[=
] { (byte) 0xd8, 0x07 };<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; String c =3D new String(=
utf, Charset.forName(&quot;UTF-8&quot;));<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; byte buf[] =3D c.getByte=
s();<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(&quot=
;hex =3D &quot; &#43; asHex(buf));<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">hex =3D&nbsp;EF BF BD 07<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<div>
<p class=3D"MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; byte buf[] =3D &quot;\ud=
807&quot;.getBytes(Charset.forName(&quot;UTF-8&quot;));<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(&quot=
;hex =3D &quot; &#43; asHex(buf));<o:p></o:p></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">hex =3D 3F<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class=3D"MsoNormal">--<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Joakim Erdfelt &lt;<a href=3D"mailto:joakim@intalio.=
com" target=3D"_blank">joakim@intalio.com</a>&gt;<o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal"><a href=3D"http://www.webtide.com/" target=3D"_blank=
">www.webtide.com</a><o:p></o:p></p>
</div>
<div>
<p class=3D"MsoNormal">Developer advice, services and support<br>
from the Jetty &amp; CometD experts.<o:p></o:p></p>
</div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
<br>
<o:p></o:p></p>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal">On Wed, Oct 17, 2012 at 3:16 PM, Kris Krueger &lt;<a=
 href=3D"mailto:krisk@microsoft.com" target=3D"_blank">krisk@microsoft.com<=
/a>&gt; wrote:<o:p></o:p></p>
<p class=3D"MsoNormal">Thanks for your response it looks like that test the=
 Unicode replacment char in utf-8 form (e.g. \uFFFD).<br>
<br>
Maybe you can try to see what occurs when you send \uD807 - which in UTF-8 =
would be E6B087?<br>
<br>
\uD807 -&gt; 3 bytes in UTF-8<br>
<br>
\u D807 &nbsp;=3D=3D0110 1100 0000 00111<br>
<br>
1110 0110 10 110000 10 000111<br>
<br>
-Thx<br>
<br>
<br>
From: Joakim Erdfelt [mailto:<a href=3D"mailto:joakim@intalio.com" target=
=3D"_blank">joakim@intalio.com</a>]<br>
Sent: Wednesday, October 17, 2012 1:56 PM<br>
To: Greg Wilkins<br>
Cc: Kris Krueger; Philippe Le Hegaret; Michael[tm] Smith; Arthur Barstow<br=
>
Subject: Re: Jetty Bug?<o:p></o:p></p>
<div>
<div>
<p class=3D"MsoNormal" style=3D"margin-bottom:12.0pt"><br>
Also, the test webapp we use for testing can be found at&nbsp;<a href=3D"ht=
tps://github.com/jetty-project/jetty-autobahn-websocket-webapp" target=3D"_=
blank">https://github.com/jetty-project/jetty-autobahn-websocket-webapp</a>=
<br>
<br>
To use ...<br>
<br>
Clone the repo<br>
$ git clone&nbsp;git://<a href=3D"http://github.com/jetty-project/jetty-aut=
obahn-websocket-webapp.git" target=3D"_blank">github.com/jetty-project/jett=
y-autobahn-websocket-webapp.git</a><br>
<br>
Build it<br>
Note: you'll need Java JDK 7<br>
$ cd jetty-autobahn-websocket-webapp<br>
$ mvn clean install<br>
<br>
Run it<br>
$ mvn exec:exec<br>
<br>
Test against it (sorry, no web UI)<br>
ws://localhost:9001/<br>
<br>
<br>
--<br>
Joakim Erdfelt &lt;<a href=3D"mailto:joakim@intalio.com" target=3D"_blank">=
joakim@intalio.com</a>&gt;<br>
<a href=3D"http://www.webtide.com" target=3D"_blank">www.webtide.com</a><br=
>
Developer advice, services and support<br>
from the Jetty &amp; CometD experts.<br>
<br>
<br>
On Wed, Oct 17, 2012 at 1:47 PM, Joakim Erdfelt &lt;<a href=3D"mailto:joaki=
m@intalio.com" target=3D"_blank">joakim@intalio.com</a>&gt; wrote:<br>
There's not much information in that test report about what's going on.<br>
<br>
Internally, we use the autobahn testsuite for testing our websocket support=
.<br>
Here's an example of the testcase for this scenario with Jetty 9.0.0-SNAPSH=
OT.<br>
<br>
<a href=3D"http://joakim.erdfelt.com/jetty/autobahn/server-9.0.0-SNAPSHOT/j=
etty_9_0_0_snapshot_case_6_23_1.html" target=3D"_blank">http://joakim.erdfe=
lt.com/jetty/autobahn/server-9.0.0-SNAPSHOT/jetty_9_0_0_snapshot_case_6_23_=
1.html</a><br>
<br>
And the same one for Jetty 7.6.1 (the version of jetty you are testing agai=
nst)<br>
<a href=3D"http://joakim.erdfelt.com/jetty/autobahn/server-7.6.1/jetty_7_6_=
1_case_6_23_1.html" target=3D"_blank">http://joakim.erdfelt.com/jetty/autob=
ahn/server-7.6.1/jetty_7_6_1_case_6_23_1.html</a><br>
<br>
Btw, what is the license for the source files at&nbsp;<a href=3D"http://w3c=
-test.org/webapps/WebSockets/tests/jetty/" target=3D"_blank">http://w3c-tes=
t.org/webapps/WebSockets/tests/jetty/</a>&nbsp;?<br>
Can I take them, update them for Jetty 9.0.0 and put the updates on github?=
<br>
<br>
<br>
--<br>
Joakim Erdfelt &lt;<a href=3D"mailto:joakim@intalio.com" target=3D"_blank">=
joakim@intalio.com</a>&gt;<br>
<a href=3D"http://www.webtide.com" target=3D"_blank">www.webtide.com</a><br=
>
Developer advice, services and support<br>
<br>
from the Jetty &amp; CometD experts.<br>
<br>
<br>
On Wed, Oct 17, 2012 at 1:37 PM, Greg Wilkins &lt;<a href=3D"mailto:gregw@i=
ntalio.com" target=3D"_blank">gregw@intalio.com</a>&gt; wrote:<br>
Hi Kris,<br>
<br>
quick answer (without looking at the specifics of the issue),<br>
<br>
I'm can help with the jetty-7 implementation, but I've also CC'd<br>
Joakim Erdfelt, who has rewritten our websocket implementation for<br>
jetty-9, so he can check we've not repeated any mistakes.<br>
<br>
I'll look at the details of this issue later today (AU time).<br>
<br>
cheers<br>
<br>
<br>
On 18 October 2012 06:42, Kris Krueger &lt;<a href=3D"mailto:krisk@microsof=
t.com" target=3D"_blank">krisk@microsoft.com</a>&gt; wrote:<br>
&gt; Hello Greg,<br>
&gt;<br>
&gt; My name is Kris Krueger and I am the W3C WebSocket API Test Suite owne=
r. &nbsp;I CC'd a few folks from the W3C and Art the Web Apps Co-Chair for =
the Web Apps Working group so you don't think this is some random email :)<=
br>
&gt;<br>
&gt; The W3C WebApps Working Group has created a set of test to test suppor=
t for the W3C WebSocket API specification (<a href=3D"http://www.w3.org/TR/=
websockets/" target=3D"_blank">http://www.w3.org/TR/websockets/</a>) to hel=
p browser interoperability. &nbsp;One of the
 more recent changes to this specification is how to handle an unpaired sur=
rogate. &nbsp;Browsers will no longer throw an exception and instead just u=
se the unicode replacement character when this situation occurs.<br>
&gt;<br>
&gt; We are using Jetty (7.6.1.v20120215) on the W3C for testing and have c=
ome across a bug in the Jetty server, which I'd like you to be aware of and=
 maybe possible fix.<br>
&gt;<br>
&gt; Here is a pointer to the test case, the issue is that on line 29 the e=
vt.reason comes back as '?' and not the replacement character.<br>
&gt; &nbsp; &nbsp; <a href=3D"http://www.w3c-test.org/webapps/WebSockets/te=
sts/submissions/Microsoft/Close-reason-unpaired-surrogates.htm" target=3D"_=
blank">
http://www.w3c-test.org/webapps/WebSockets/tests/submissions/Microsoft/Clos=
e-reason-unpaired-surrogates.htm</a><br>
&gt;<br>
&gt; Would you be the right person to investigate this bug in Jetty?<br>
&gt;<br>
&gt; -Thanks!<br>
<br>
<br>
<br>
--<br>
Greg Wilkins &lt;<a href=3D"mailto:gregw@intalio.com" target=3D"_blank">gre=
gw@intalio.com</a>&gt;<br>
<a href=3D"http://www.webtide.com" target=3D"_blank">http://www.webtide.com=
</a><br>
Developer advice and support from the Jetty &amp; CometD experts.<br>
<br>
<o:p></o:p></p>
</div>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
</body>
</html>

--_000_6971787274726580737178666671697374706979657474717267777_--

