From dev-return-77368-apmail-tomcat-dev-archive=tomcat.apache.org@tomcat.apache.org Tue Dec 19 11:44:26 2006 Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 67433 invoked from network); 19 Dec 2006 11:44:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Dec 2006 11:44:25 -0000 Received: (qmail 90539 invoked by uid 500); 19 Dec 2006 11:44:28 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 90491 invoked by uid 500); 19 Dec 2006 11:44:28 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 90480 invoked by uid 99); 19 Dec 2006 11:44:28 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Dec 2006 03:44:28 -0800 X-ASF-Spam-Status: No, hits=1.5 required=10.0 tests=MIME_BASE64_TEXT,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of naonaoyh@gmail.com designates 66.249.82.230 as permitted sender) Received: from [66.249.82.230] (HELO wx-out-0506.google.com) (66.249.82.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 19 Dec 2006 03:44:14 -0800 Received: by wx-out-0506.google.com with SMTP id i26so1666054wxd for ; Tue, 19 Dec 2006 03:43:53 -0800 (PST) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:from:to:references:subject:date:mime-version:content-type:content-transfer-encoding:x-priority:x-msmail-priority:x-mailer:x-mimeole; b=JyNXmCUTem+6MbokJu4qBuc3J6/Tk3dgthGs6b8F8ucHYzw2Z/vVh280xI7IHNTl56iY/He+RbC+DZehlEBOLTkPodwkrBN+7VBxKtqkA1j1rdyug+bgDvwswmeJYs0rqU1ukRXle9uZI/d2EInQlQ5WtKgaZiIxRzVY8z8ZiGg= Received: by 10.70.29.7 with SMTP id c7mr9608170wxc.1166528632541; Tue, 19 Dec 2006 03:43:52 -0800 (PST) Received: from longyan ( [203.86.46.162]) by mx.google.com with ESMTP id i17sm9796702wxd.2006.12.19.03.43.50; Tue, 19 Dec 2006 03:43:51 -0800 (PST) Message-ID: <001f01c72362$e9b85f50$0600a8c0@longyan> From: "??" To: "Tomcat Developers List" References: Subject: Re: ClientAbortException: java.net.SocketException: Connection reset Date: Tue, 19 Dec 2006 19:43:30 +0800 MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.3028 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028 X-Virus-Checked: Checked by ClamAV on apache.org VGhlIHJlYWwgcmVhc29uIGZvciB0aGUgdG9tY2F0IHNlcnZlciBzdG9wIGFjY2VwdCByZXF1ZXN0 IGlzIHRoZSANCiJqYXZhLmxhbmcuT3V0T2ZNZW1vcnlFcnJvcjogSmF2YSBoZWFwIHNwYWNlIiEN Cg0KeXVhbiBob25nDQoNCg0KLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLSANCkZyb206ICJh ZW9uc3VuIiA8YWVvbnN1bkBnbWFpbC5jb20+DQpUbzogPGRldkB0b21jYXQuYXBhY2hlLm9yZz4N ClNlbnQ6IFR1ZXNkYXksIERlY2VtYmVyIDE5LCAyMDA2IDEwOjU3IEFNDQpTdWJqZWN0OiBDbGll bnRBYm9ydEV4Y2VwdGlvbjogamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uOiBDb25uZWN0aW9uIHJl c2V0DQoNCg0KPiBoZWxsbyBhbGw6DQo+IEknbSB1c2VpbmcgdG9tY2F0NS41LjE3IC50b21jYXQg c2VydmVyIGNhdGNoIHRoZSBmb2xsb3cgZXhjZXB0aW9uIGFuZCBpdA0KPiBkb24ndCB3b3JrIHNv bWV0aW1lcyAodGhlIGh0dHAgcG9ydCBoYXMgYmUgbGlzdGluZyB5ZXQgYW5kIG5vIGFueSAgbWVz c2FnZQ0KPiBpZiBJIGNvbm5lY3RlZCBpdC4gVGhlIHBlcnRpbmVudCBjb2RlIGlzIGFmdGVyIHRo ZSBleGNlcHRpb24uKQ0KPiANCj4gQ2xpZW50QWJvcnRFeGNlcHRpb246ICBqYXZhLm5ldC5Tb2Nr ZXRFeGNlcHRpb246IENvbm5lY3Rpb24gcmVzZXQNCj4gICAgYXQgb3JnLmFwYWNoZS5jYXRhbGlu YS5jb25uZWN0b3IuT3V0cHV0QnVmZmVyLmRvRmx1c2goT3V0cHV0QnVmZmVyLmphdmENCj4gOjMy NykNCj4gICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuT3V0cHV0QnVmZmVyLmZs dXNoKE91dHB1dEJ1ZmZlci5qYXZhOjI5MykNCj4gICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5j b25uZWN0b3IuQ295b3RlT3V0cHV0U3RyZWFtLmZsdXNoKA0KPiBDb3lvdGVPdXRwdXRTdHJlYW0u amF2YTo5NykNCj4gICAgYXQgamF2YXguaW1hZ2Vpby5zdHJlYW0uRmlsZUNhY2hlSW1hZ2VPdXRw dXRTdHJlYW0uZmx1c2hCZWZvcmUoDQo+IEZpbGVDYWNoZUltYWdlT3V0cHV0U3RyZWFtLmphdmE6 MjE0KQ0KPiAgICBhdCBqYXZheC5pbWFnZWlvLnN0cmVhbS5JbWFnZUlucHV0U3RyZWFtSW1wbC5m bHVzaCAoDQo+IEltYWdlSW5wdXRTdHJlYW1JbXBsLmphdmE6ODAxKQ0KPiAgICBhdCBjb20uc3Vu LmltYWdlaW8ucGx1Z2lucy5qcGVnLkpQRUdJbWFnZVdyaXRlci53cml0ZSgNCj4gSlBFR0ltYWdl V3JpdGVyLmphdmE6MTAwMikNCj4gICAgYXQgamF2YXguaW1hZ2Vpby5JbWFnZVdyaXRlci53cml0 ZShJbWFnZVdyaXRlci5qYXZhOjU5OCkNCj4gICAgYXQgamF2YXguaW1hZ2Vpby5JbWFnZUlPLndy aXRlIChJbWFnZUlPLmphdmE6MTQ1MCkNCj4gICAgYXQgamF2YXguaW1hZ2Vpby5JbWFnZUlPLndy aXRlKEltYWdlSU8uamF2YToxNTI0KQ0KPiAgICBhdCBuZXQubTIud2ViYXBwLmFjdGlvbi5SYW5k b21JbWFnZVNlcnZsZXQuZG9HZXQoUmFuZG9tSW1hZ2VTZXJ2bGV0LmphdmENCj4gOjQ1KQ0KPiAg ICBhdCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQuc2VydmljZShIdHRwU2VydmxldC5q YXZhIDo2ODkpDQo+ICAgIGF0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldC5zZXJ2aWNl KEh0dHBTZXJ2bGV0LmphdmE6ODAyKQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUu QXBwbGljYXRpb25GaWx0ZXJDaGFpbi5pbnRlcm5hbERvRmlsdGVyKA0KPiBBcHBsaWNhdGlvbkZp bHRlckNoYWluLmphdmE6MjUyKQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuQXBw bGljYXRpb25GaWx0ZXJDaGFpbi5kb0ZpbHRlciAoDQo+IEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4u amF2YToxNzMpDQo+ICAgIGF0IG5ldC5tMi51dGlsLkVuY29kaW5nRmlsdGVyLmRvRmlsdGVyKEVu Y29kaW5nRmlsdGVyLmphdmE6NTQpDQo+ICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5B cHBsaWNhdGlvbkZpbHRlckNoYWluLmludGVybmFsRG9GaWx0ZXIoDQo+IEFwcGxpY2F0aW9uRmls dGVyQ2hhaW4uamF2YToyMDIpDQo+ICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBs aWNhdGlvbkZpbHRlckNoYWluLmRvRmlsdGVyKA0KPiBBcHBsaWNhdGlvbkZpbHRlckNoYWluLmph dmE6MTczKQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRXcmFwcGVy VmFsdmUuaW52b2tlKA0KPiBTdGFuZGFyZFdyYXBwZXJWYWx2ZS5qYXZhOjIxMykNCj4gICAgYXQg b3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkQ29udGV4dFZhbHZlLmludm9rZSAoDQo+ IFN0YW5kYXJkQ29udGV4dFZhbHZlLmphdmE6MTc4KQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNhdGFs aW5hLmNvcmUuU3RhbmRhcmRIb3N0VmFsdmUuaW52b2tlKA0KPiBTdGFuZGFyZEhvc3RWYWx2ZS5q YXZhOjEyNikNCj4gICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRW YWx2ZS5pbnZva2UoDQo+IEVycm9yUmVwb3J0VmFsdmUuamF2YToxMDUpDQo+ICAgIGF0IG9yZy5h cGFjaGUuY2F0YWxpbmEuY29yZS5TdGFuZGFyZEVuZ2luZVZhbHZlLmludm9rZSAoDQo+IFN0YW5k YXJkRW5naW5lVmFsdmUuamF2YToxMDcpDQo+ICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29u bmVjdG9yLkNveW90ZUFkYXB0ZXIuc2VydmljZSgNCj4gQ295b3RlQWRhcHRlci5qYXZhOjE0OCkN Cj4gICAgYXQgb3JnLmFwYWNoZS5jb3lvdGUuaHR0cDExLkh0dHAxMVByb2Nlc3Nvci5wcm9jZXNz KEh0dHAxMVByb2Nlc3Nvci5qYXZhDQo+IDo4NjkpDQo+ICAgIGF0DQo+IG9yZy5hcGFjaGUuY295 b3RlLmh0dHAxMS5IdHRwMTFCYXNlUHJvdG9jb2wkSHR0cDExQ29ubmVjdGlvbkhhbmRsZXIucHJv Y2Vzc0Nvbm5lY3Rpb24oDQo+IEh0dHAxMUJhc2VQcm90b2NvbC5qYXZhOjY2NCkNCj4gICAgYXQg b3JnLmFwYWNoZS50b21jYXQudXRpbC5uZXQuUG9vbFRjcEVuZHBvaW50LnByb2Nlc3NTb2NrZXQo DQo+IFBvb2xUY3BFbmRwb2ludC5qYXZhOjUyNykNCj4gICAgYXQgb3JnLmFwYWNoZS50b21jYXQu dXRpbC5uZXQuTGVhZGVyRm9sbG93ZXJXb3JrZXJUaHJlYWQucnVuSXQoDQo+IExlYWRlckZvbGxv d2VyV29ya2VyVGhyZWFkLmphdmEgOjgwKQ0KPiAgICBhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGls LnRocmVhZHMuVGhyZWFkUG9vbCRDb250cm9sUnVubmFibGUucnVuKA0KPiBUaHJlYWRQb29sLmph dmE6Njg0KQ0KPiAgICBhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo1OTUpDQo+ IENhdXNlZCBieTogamF2YS5uZXQuU29ja2V0RXhjZXB0aW9uOiBDb25uZWN0aW9uIHJlc2V0DQo+ ICAgIGF0IGphdmEubmV0LlNvY2tldE91dHB1dFN0cmVhbS5zb2NrZXRXcml0ZSAoU29ja2V0T3V0 cHV0U3RyZWFtLmphdmE6OTYpDQo+ICAgIGF0IGphdmEubmV0LlNvY2tldE91dHB1dFN0cmVhbS53 cml0ZShTb2NrZXRPdXRwdXRTdHJlYW0uamF2YToxMzYpDQo+ICAgIGF0IG9yZy5hcGFjaGUuY295 b3RlLmh0dHAxMS5JbnRlcm5hbE91dHB1dEJ1ZmZlci5yZWFsV3JpdGVCeXRlcygNCj4gSW50ZXJu YWxPdXRwdXRCdWZmZXIuamF2YTo3NDYpDQo+ICAgIGF0IG9yZy5hcGFjaGUudG9tY2F0LnV0aWwu YnVmLkJ5dGVDaHVuay5mbHVzaEJ1ZmZlciAoQnl0ZUNodW5rLmphdmE6NDMzKQ0KPiAgICBhdCBv cmcuYXBhY2hlLmNveW90ZS5odHRwMTEuSW50ZXJuYWxPdXRwdXRCdWZmZXIuZmx1c2goDQo+IElu dGVybmFsT3V0cHV0QnVmZmVyLmphdmE6MzA0KQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNveW90ZS5o dHRwMTEuSHR0cDExUHJvY2Vzc29yLmFjdGlvbihIdHRwMTFQcm9jZXNzb3IuamF2YQ0KPiA6OTkx KQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNveW90ZS5SZXNwb25zZS5hY3Rpb24gKFJlc3BvbnNlLmph dmE6MTgyKQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvbm5lY3Rvci5PdXRwdXRCdWZm ZXIuZG9GbHVzaChPdXRwdXRCdWZmZXIuamF2YQ0KPiA6MzIyKQ0KPiAgICAuLi4gMjggbW9yZQ0K PiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3IxMDhdIChUaHJlYWRQb29sLmphdmE6NjkzKSAtIENh dWdodCBleGNlcHRpb24gKA0KPiBqYXZhLmxhbmcuT3V0T2ZNZW1vcnlFcnJvciA6IEphdmEgaGVh cCBzcGFjZSkgZXhlY3V0aW5nDQo+IG9yZy5hcGFjaGUudG9tY2F0LnV0aWwubmV0LkxlYWRlckZv bGxvd2VyV29ya2VyVGhyZWFkQDJiYzI3OCwgdGVybWluYXRpbmcNCj4gdGhyZWFkDQo+IEVSUk9S IFtodHRwLTgwLVByb2Nlc3NvcjM2XSAoQ295b3RlQWRhcHRlci5qYXZhOjE1NykgLSBBbiBleGNl cHRpb24gb3IgZXJyb3INCj4gb2NjdXJyZWQgaW4gdGhlIGNvbnRhaW5lciBkdXJpbmcgdGhlIHJl cXVlc3QgcHJvY2Vzc2luZw0KPiBqYXZhLmxhbmcuT3V0T2ZNZW1vcnlFcnJvcjogSmF2YSBoZWFw IHNwYWNlDQo+IEVSUk9SIFtodHRwLTgwLVByb2Nlc3NvcjU4XSAoRnJhbWV3b3JrU2VydmxldC5q YXZhOjQxMykgLSBDb3VsZCBub3QgY29tcGxldGUNCj4gcmVxdWVzdA0KPiBvcmcuc3ByaW5nZnJh bWV3b3JrLndlYi51dGlsLk5lc3RlZFNlcnZsZXRFeGNlcHRpb246IEhhbmRsZXIgcHJvY2Vzc2lu Zw0KPiBmYWlsZWQ7IG5lc3RlZCBleGNlcHRpb24gaXMgamF2YS5sYW5nLk91dE9mTWVtb3J5RXJy b3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBqYXZhLmxhbmcuT3V0T2ZNZW1vcnlFcnJvcjogSmF2YSBo ZWFwIHNwYWNlDQo+IEVSUk9SIFtodHRwLTgwLVByb2Nlc3NvcjgzXSAoRnJhbWV3b3JrU2Vydmxl dC5qYXZhOjQxMykgLSBDb3VsZCBub3QgY29tcGxldGUNCj4gcmVxdWVzdA0KPiBvcmcuc3ByaW5n ZnJhbWV3b3JrLndlYi51dGlsLk5lc3RlZFNlcnZsZXRFeGNlcHRpb24gOiBIYW5kbGVyIHByb2Nl c3NpbmcNCj4gZmFpbGVkOyBuZXN0ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFuZy5PdXRPZk1lbW9y eUVycm9yOiBKYXZhIGhlYXAgc3BhY2UNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEph dmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3I4OF0gKEZyYW1ld29ya1Nl cnZsZXQuamF2YTo0MTMpIC0gQ291bGQgbm90IGNvbXBsZXRlDQo+IHJlcXVlc3QNCj4gb3JnLnNw cmluZ2ZyYW1ld29yay53ZWIudXRpbC5OZXN0ZWRTZXJ2bGV0RXhjZXB0aW9uOiBIYW5kbGVyIHBy b2Nlc3NpbmcNCj4gZmFpbGVkOyBuZXN0ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFuZy5PdXRPZk1l bW9yeUVycm9yOiBKYXZhIGhlYXAgc3BhY2UNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6 IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3IzXSAoIEZyYW1ld29y a1NlcnZsZXQuamF2YTo0MTMpIC0gQ291bGQgbm90IGNvbXBsZXRlDQo+IHJlcXVlc3QNCj4gb3Jn LnNwcmluZ2ZyYW1ld29yay53ZWIudXRpbC5OZXN0ZWRTZXJ2bGV0RXhjZXB0aW9uOiBIYW5kbGVy IHByb2Nlc3NpbmcNCj4gZmFpbGVkOyBuZXN0ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFuZy5PdXRP Zk1lbW9yeUVycm9yOiBKYXZhIGhlYXAgc3BhY2UNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJy b3IgOiBKYXZhIGhlYXAgc3BhY2UNCj4gV0FSTiBbaHR0cC04MC1Qcm9jZXNzb3IxMDFdIChTdGFu ZGFyZEhvc3RWYWx2ZS5qYXZhOjI4OCkgLSBFeGNlcHRpb24NCj4gUHJvY2Vzc2luZyBFcnJvclBh Z2VbZXJyb3JDb2RlPTQwNCwgbG9jYXRpb249L2Vycm9yLmpzcF0NCj4gQ2xpZW50QWJvcnRFeGNl cHRpb246ICBqYXZhLm5ldC5Tb2NrZXRFeGNlcHRpb246IENvbm5lY3Rpb24gcmVzZXQNCj4gICAg YXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuT3V0cHV0QnVmZmVyLmRvRmx1c2goT3V0 cHV0QnVmZmVyLmphdmENCj4gOjMyNykNCj4gICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb25u ZWN0b3IuT3V0cHV0QnVmZmVyLmZsdXNoKE91dHB1dEJ1ZmZlci5qYXZhDQo+IDoyOTMpDQo+ICAg IGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29ubmVjdG9yLlJlc3BvbnNlLmZsdXNoQnVmZmVyKFJl c3BvbnNlLmphdmE6NTM3KQ0KPiAgICBhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRh cmRIb3N0VmFsdmUuc3RhdHVzKA0KPiBTdGFuZGFyZEhvc3RWYWx2ZS5qYXZhOjI4NikNCj4gICAg YXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkSG9zdFZhbHZlLmludm9rZSgNCj4g U3RhbmRhcmRIb3N0VmFsdmUuamF2YToxMzYpDQo+ICAgIGF0IG9yZy5hcGFjaGUuY2F0YWxpbmEu dmFsdmVzLkVycm9yUmVwb3J0VmFsdmUuaW52b2tlICgNCj4gRXJyb3JSZXBvcnRWYWx2ZS5qYXZh OjEwNSkNCj4gICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkRW5naW5lVmFs dmUuaW52b2tlKA0KPiBTdGFuZGFyZEVuZ2luZVZhbHZlLmphdmE6MTA3KQ0KPiAgICBhdCBvcmcu YXBhY2hlLmNhdGFsaW5hLmNvbm5lY3Rvci5Db3lvdGVBZGFwdGVyLnNlcnZpY2UoDQo+IENveW90 ZUFkYXB0ZXIuamF2YToxNDgpDQo+ICAgIGF0IG9yZy5hcGFjaGUuY295b3RlLmh0dHAxMS5IdHRw MTFQcm9jZXNzb3IucHJvY2VzcyAoDQo+IEh0dHAxMVByb2Nlc3Nvci5qYXZhOjg2OSkNCj4gICAg YXQNCj4gb3JnLmFwYWNoZS5jb3lvdGUuaHR0cDExLkh0dHAxMUJhc2VQcm90b2NvbCRIdHRwMTFD b25uZWN0aW9uSGFuZGxlci5wcm9jZXNzQ29ubmVjdGlvbg0KPiAoSHR0cDExQmFzZVByb3RvY29s LmphdmE6NjY0KQ0KPiAgICBhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLm5ldC5Qb29sVGNwRW5k cG9pbnQucHJvY2Vzc1NvY2tldCgNCj4gUG9vbFRjcEVuZHBvaW50LmphdmEgOjUyNykNCj4gICAg YXQgb3JnLmFwYWNoZS50b21jYXQudXRpbC5uZXQuTGVhZGVyRm9sbG93ZXJXb3JrZXJUaHJlYWQu cnVuSXQoDQo+IExlYWRlckZvbGxvd2VyV29ya2VyVGhyZWFkLmphdmE6ODApDQo+ICAgIGF0IG9y Zy5hcGFjaGUudG9tY2F0LnV0aWwudGhyZWFkcy5UaHJlYWRQb29sJENvbnRyb2xSdW5uYWJsZS5y dW4oDQo+IFRocmVhZFBvb2wuamF2YTo2ODQpDQo+ICAgIGF0IGphdmEubGFuZy5UaHJlYWQucnVu IChUaHJlYWQuamF2YTo1OTUpDQo+IENhdXNlZCBieTogamF2YS5uZXQuU29ja2V0RXhjZXB0aW9u OiBDb25uZWN0aW9uIHJlc2V0DQo+ICAgIGF0IGphdmEubmV0LlNvY2tldE91dHB1dFN0cmVhbS5z b2NrZXRXcml0ZShTb2NrZXRPdXRwdXRTdHJlYW0uamF2YTo5NikNCj4gICAgYXQgamF2YS5uZXQu U29ja2V0T3V0cHV0U3RyZWFtLndyaXRlKFNvY2tldE91dHB1dFN0cmVhbS5qYXZhOjEzNikNCj4g ICAgYXQgb3JnLmFwYWNoZS5jb3lvdGUuaHR0cDExLkludGVybmFsT3V0cHV0QnVmZmVyLnJlYWxX cml0ZUJ5dGVzKA0KPiBJbnRlcm5hbE91dHB1dEJ1ZmZlci5qYXZhOjc0NikNCj4gICAgYXQgb3Jn LmFwYWNoZS50b21jYXQudXRpbC5idWYuQnl0ZUNodW5rLmZsdXNoQnVmZmVyKEJ5dGVDaHVuay5q YXZhOjQzMykNCj4gICAgYXQgb3JnLmFwYWNoZS5jb3lvdGUuaHR0cDExLkludGVybmFsT3V0cHV0 QnVmZmVyLmZsdXNoICgNCj4gSW50ZXJuYWxPdXRwdXRCdWZmZXIuamF2YTozMDQpDQo+ICAgIGF0 IG9yZy5hcGFjaGUuY295b3RlLmh0dHAxMS5IdHRwMTFQcm9jZXNzb3IuYWN0aW9uKEh0dHAxMVBy b2Nlc3Nvci5qYXZhDQo+IDo5OTEpDQo+ICAgIGF0IG9yZy5hcGFjaGUuY295b3RlLlJlc3BvbnNl LmFjdGlvbihSZXNwb25zZS5qYXZhOjE4MikNCj4gICAgYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5j b25uZWN0b3IuT3V0cHV0QnVmZmVyLmRvRmx1c2ggKE91dHB1dEJ1ZmZlci5qYXZhDQo+IDozMjIp DQo+ICAgIC4uLiAxMyBtb3JlDQo+IEVSUk9SIFtodHRwLTgwLVByb2Nlc3NvcjcxXSAoRnJhbWV3 b3JrU2VydmxldC5qYXZhOjQxMykgLSBDb3VsZCBub3QgY29tcGxldGUNCj4gcmVxdWVzdA0KPiBv cmcuc3ByaW5nZnJhbWV3b3JrLndlYi51dGlsLk5lc3RlZFNlcnZsZXRFeGNlcHRpb246IEhhbmRs ZXIgcHJvY2Vzc2luZw0KPiBmYWlsZWQ7IG5lc3RlZCBleGNlcHRpb24gaXMgamF2YS5sYW5nLk91 dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBqYXZhLmxhbmcuT3V0T2ZNZW1vcnlF cnJvcjogSmF2YSBoZWFwIHNwYWNlDQo+IEVSUk9SIFtodHRwLTgwLVByb2Nlc3NvcjU1XSAoRnJh bWV3b3JrU2VydmxldC5qYXZhOjQxMykgLSBDb3VsZCBub3QgY29tcGxldGUNCj4gcmVxdWVzdA0K PiBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi51dGlsLk5lc3RlZFNlcnZsZXRFeGNlcHRpb24gOiBI YW5kbGVyIHByb2Nlc3NpbmcNCj4gZmFpbGVkOyBuZXN0ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFu Zy5PdXRPZk1lbW9yeUVycm9yOiBKYXZhIGhlYXAgc3BhY2UNCj4gamF2YS5sYW5nLk91dE9mTWVt b3J5RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3I3MV0g KENveW90ZUFkYXB0ZXIuamF2YToxNTcpIC0gQW4gZXhjZXB0aW9uIG9yIGVycm9yDQo+IG9jY3Vy cmVkIGluIHRoZSBjb250YWluZXIgZHVyaW5nIHRoZSByZXF1ZXN0IHByb2Nlc3NpbmcNCj4gamF2 YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBbaHR0cC04 MC1Qcm9jZXNzb3I3NF0gKEZyYW1ld29ya1NlcnZsZXQuamF2YTo0MTMpIC0gQ291bGQgbm90IGNv bXBsZXRlDQo+IHJlcXVlc3QNCj4gb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIudXRpbC5OZXN0ZWRT ZXJ2bGV0RXhjZXB0aW9uOiBIYW5kbGVyIHByb2Nlc3NpbmcNCj4gZmFpbGVkOyBuZXN0ZWQgZXhj ZXB0aW9uIGlzIGphdmEubGFuZy5PdXRPZk1lbW9yeUVycm9yOiBKYXZhIGhlYXAgc3BhY2UNCj4g amF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBbaHR0 cC04MC1Qcm9jZXNzb3IyMV0gKENveW90ZUFkYXB0ZXIuamF2YToxNTcpIC0gQW4gZXhjZXB0aW9u IG9yIGVycm9yDQo+IG9jY3VycmVkIGluIHRoZSBjb250YWluZXIgZHVyaW5nIHRoZSByZXF1ZXN0 IHByb2Nlc3NpbmcNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBzcGFj ZQ0KPiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3I2M10gKEZyYW1ld29ya1NlcnZsZXQuamF2YTo0 MTMpIC0gQ291bGQgbm90IGNvbXBsZXRlDQo+IHJlcXVlc3QNCj4gb3JnLnNwcmluZ2ZyYW1ld29y ay53ZWIudXRpbC5OZXN0ZWRTZXJ2bGV0RXhjZXB0aW9uOiBIYW5kbGVyIHByb2Nlc3NpbmcNCj4g ZmFpbGVkOyBuZXN0ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFuZy5PdXRPZk1lbW9yeUVycm9yOiBK YXZhIGhlYXAgc3BhY2UNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBz cGFjZQ0KPiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3I1Ml0gKENveW90ZUFkYXB0ZXIuamF2YTox NTcpIC0gQW4gZXhjZXB0aW9uIG9yIGVycm9yDQo+IG9jY3VycmVkIGluIHRoZSBjb250YWluZXIg ZHVyaW5nIHRoZSByZXF1ZXN0IHByb2Nlc3NpbmcNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJy b3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3IyMl0gKEZyYW1l d29ya1NlcnZsZXQuamF2YTo0MTMpIC0gQ291bGQgbm90IGNvbXBsZXRlDQo+IHJlcXVlc3QNCj4g b3JnLnNwcmluZ2ZyYW1ld29yay53ZWIudXRpbC5OZXN0ZWRTZXJ2bGV0RXhjZXB0aW9uOiBIYW5k bGVyIHByb2Nlc3NpbmcNCj4gZmFpbGVkOyBuZXN0ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFuZy5P dXRPZk1lbW9yeUVycm9yOiBKYXZhIGhlYXAgc3BhY2UNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5 RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBbaHR0cC04MC1Qcm9jZXNzb3I4OV0gKEZy YW1ld29ya1NlcnZsZXQuamF2YTo0MTMpIC0gQ291bGQgbm90IGNvbXBsZXRlDQo+IHJlcXVlc3QN Cj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJPUiBb aHR0cC04MC1Qcm9jZXNzb3I1MV0gKEZyYW1ld29ya1NlcnZsZXQuamF2YTo0MTMpIC0gQ291bGQg bm90IGNvbXBsZXRlDQo+IHJlcXVlc3QNCj4gb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIudXRpbC5O ZXN0ZWRTZXJ2bGV0RXhjZXB0aW9uOiBIYW5kbGVyIHByb2Nlc3NpbmcNCj4gZmFpbGVkOyBuZXN0 ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFuZy5PdXRPZk1lbW9yeUVycm9yOiBKYXZhIGhlYXAgc3Bh Y2UNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiBFUlJP UiBbaHR0cC04MC1Qcm9jZXNzb3I5Nl0gKEZyYW1ld29ya1NlcnZsZXQuamF2YTo0MTMpIC0gQ291 bGQgbm90IGNvbXBsZXRlDQo+IHJlcXVlc3QNCj4gb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIudXRp bC5OZXN0ZWRTZXJ2bGV0RXhjZXB0aW9uOiBIYW5kbGVyIHByb2Nlc3NpbmcNCj4gZmFpbGVkOyBu ZXN0ZWQgZXhjZXB0aW9uIGlzIGphdmEubGFuZy5PdXRPZk1lbW9yeUVycm9yOiBKYXZhIGhlYXAg c3BhY2UNCj4gamF2YS5sYW5nLk91dE9mTWVtb3J5RXJyb3I6IEphdmEgaGVhcCBzcGFjZQ0KPiAN Cj4gDQo+IA0KPiBjb2RlOg0KPiBwcm90ZWN0ZWQgdm9pZCBkb0dldChIdHRwU2VydmxldFJlcXVl c3QgcmVxdWVzdCwNCj4gICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB0 aHJvd3MgU2VydmxldEV4Y2VwdGlvbiwNCj4gSU9FeGNlcHRpb24gew0KPiAgICAgICAgVmFsaWRh dGVJbWFnZSBpbWFnZSA9IG5ldyBWYWxpZGF0ZUltYWdlKCk7DQo+ICAgICAgICByZXNwb25zZS5z ZXRIZWFkZXIoIlByYWdtYSIsICJOby1jYWNoZSIpOw0KPiAgICAgICAgcmVzcG9uc2Uuc2V0SGVh ZGVyKCJDYWNoZS1Db250cm9sIiwgIm5vLWNhY2hlIik7DQo+ICAgICAgICByZXNwb25zZS5zZXRE YXRlSGVhZGVyICgiRXhwaXJlcyIsIDApOw0KPiAgICAgICAgdHJ5IHsNCj4gICAgICAgICAgICBC dWZmZXJlZEltYWdlIGltID0gaW1hZ2UuY3JlYXRJbWFnZSgpOw0KPiAgICAgICAgICAgIHJlcXVl c3QuZ2V0U2Vzc2lvbigpLnNldEF0dHJpYnV0ZSgNCj4gICAgICAgICAgICAgICAgICAgIEh0dHBT ZXNzaW9uS2V5cy5WYWxpZGF0ZUltYWdlLCBpbWFnZS5zUmFuZCk7DQo+ICAgICAgICAgICAgSW1h Z2VJTy53cml0ZShpbSwgIkpQRUciLCByZXNwb25zZQ0KPiAgICAgICAgICAgICAgICAgICAgLmdl dE91dHB1dFN0cmVhbSgpKTsNCj4gICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQo+ICAg ICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsNCj4gICAgICAgIH0NCj4gICAgfQ0KPiANCj4g KFRoZSBjbGFzcyBWYWxpZGF0ZUltYWdlIGdlbmVyYXRlIGEgb2JqZWN0IG9mIGphdmEuYXd0Lmlt YWdlLkJ1ZmZlcmVkSW1hZ2UpDQo+IA0KPiB0aGFua3MuDQo+