Return-Path: Mailing-List: contact cocoon-dev-help@xml.apache.org; run by ezmlm Delivered-To: mailing list cocoon-dev@xml.apache.org Received: (qmail 42242 invoked from network); 12 Feb 2001 10:33:00 -0000 Received: from postfix.informatik.uni-bonn.de (HELO mailbox.informatik.uni-bonn.de) (131.220.131.28) by h31.sny.collab.net with SMTP; 12 Feb 2001 10:33:00 -0000 Received: from mithrim.informatik.uni-bonn.de (mithrim.informatik.uni-bonn.de [131.220.8.241]) by mailbox.informatik.uni-bonn.de (Postfix) with ESMTP id 8454B70C91 for ; Mon, 12 Feb 2001 11:33:12 +0100 (MET) (envelope-from stefan@informatik.uni-bonn.de) (envelope-to cocoon-dev@xml.apache.org) Date: Mon, 12 Feb 2001 11:33:12 +0100 (CET) From: =?ISO-8859-1?Q?Stefan_L=FCttringhaus-Kappel?= To: Subject: Re: [C2] esql problem: pooling fails In-Reply-To: <001b01c09481$3861cf00$3200a8c0@calvary.org> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-595332856-350340115-981973992=:17541" X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N ---595332856-350340115-981973992=:17541 Content-Type: TEXT/PLAIN; charset=ISO-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE On Sun, 11 Feb 2001, Berin Loritsch wrote: > The connections are given back to the pool behind the scenes. The design > constraint of the > Avalon DataSources is that they behave like the JDBC javax.sql.DataSource > Interface. I thinks it's really closing the java.sql.Connection, file is attached: =2E.. import java.sql.Connection; =2E.. class EsqlConnection { DataSourceComponent datasource =3D null; Connection connection =3D null; String dburl =3D null; String username =3D null; String password =3D null; } =2E.. EsqlConnection _esql_connection =3D null; =2E.. _esql_connection.connection.close(); =2E.. > > Check the WEB-INF/logs/cocoon.log function--if you are using DEBUG level > logging, > you should see that the Connection is requested from Cocoon, and then > returned to > Cocoon. If there is something else happening, then please let me know. So I do (grep'ed for DEBUG and connection): DEBUG 76947 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 19180 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 19773 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 49145 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 49960 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 50045 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection object = created DEBUG 50045 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 50120 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection object = created DEBUG 50120 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 50190 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection object = created DEBUG 50190 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 50266 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection object = created DEBUG 50266 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. DEBUG 50339 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection object = created DEBUG 50339 [cocoon ] (HttpProcessor[8080][4]): JdbcConnection 'jdbc:m= ysql://gondolin.informatik.uni-bonn.de/experiment' has been requested from = pool. So it uses the up the 5 initial connection, makes another 5, and game over. It never returns any, I read the whole logfile. Moreover, I don't think the appropriate method is anywhere in the generated code? Best regards, Stefan L=FCttringhaus-Kappel ---595332856-350340115-981973992=:17541 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="_esql_test_xsp.java" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: _esql_test_xsp.java Content-Disposition: attachment; filename="_esql_test_xsp.java" DQpwYWNrYWdlIF9ob21lLl9taXRocmltLl9zdGVmYW4uX3dlYmFwcHMuX1hN TF9BcHBzLl9Xb2IyLl92aWRlbzsNCg0KaW1wb3J0IGphdmEuaW8uKjsNCmlt cG9ydCBqYXZhLm5ldC4qOw0KaW1wb3J0IGphdmEudXRpbC4qOw0KDQppbXBv cnQgb3JnLnczYy5kb20uKjsNCmltcG9ydCBvcmcueG1sLnNheC4qOw0KaW1w b3J0IG9yZy54bWwuc2F4LmhlbHBlcnMuKjsNCg0KaW1wb3J0IG9yZy5hcGFj aGUuYXZhbG9uLio7DQppbXBvcnQgb3JnLmFwYWNoZS5hdmFsb24udXRpbC4q Ow0KaW1wb3J0IG9yZy5hcGFjaGUubG9nLio7DQppbXBvcnQgb3JnLmFwYWNo ZS5jb2Nvb24uKjsNCmltcG9ydCBvcmcuYXBhY2hlLmNvY29vbi5nZW5lcmF0 aW9uLio7DQppbXBvcnQgb3JnLmFwYWNoZS5jb2Nvb24uY29tcG9uZW50cy5w YXJzZXIuKjsNCmltcG9ydCBvcmcuYXBhY2hlLmNvY29vbi51dGlsLio7DQoN CmltcG9ydCBvcmcuYXBhY2hlLmNvY29vbi5jb21wb25lbnRzLmxhbmd1YWdl Lm1hcmt1cC54c3AuWFNQR2VuZXJhdG9yOw0KaW1wb3J0IG9yZy5hcGFjaGUu Y29jb29uLmNvbXBvbmVudHMubGFuZ3VhZ2UubWFya3VwLnhzcC5YU1BPYmpl Y3RIZWxwZXI7DQppbXBvcnQgb3JnLmFwYWNoZS5jb2Nvb24uY29tcG9uZW50 cy5sYW5ndWFnZS5tYXJrdXAueHNwLlhTUFJlcXVlc3RIZWxwZXI7DQppbXBv cnQgb3JnLmFwYWNoZS5jb2Nvb24uY29tcG9uZW50cy5sYW5ndWFnZS5tYXJr dXAueHNwLlhTUFJlc3BvbnNlSGVscGVyOw0KDQoNCi8qIFVzZXIgSW1wb3J0 cyAqLw0KDQppbXBvcnQgamF2YS5zcWwuRHJpdmVyTWFuYWdlcjsNCg0KaW1w b3J0IGphdmEuc3FsLkNvbm5lY3Rpb247DQoNCmltcG9ydCBqYXZhLnNxbC5T dGF0ZW1lbnQ7DQoNCmltcG9ydCBqYXZhLnNxbC5QcmVwYXJlZFN0YXRlbWVu dDsNCg0KaW1wb3J0IGphdmEuc3FsLlJlc3VsdFNldDsNCg0KaW1wb3J0IGph dmEuc3FsLlJlc3VsdFNldE1ldGFEYXRhOw0KDQppbXBvcnQgamF2YS5zcWwu U1FMRXhjZXB0aW9uOw0KDQppbXBvcnQgamF2YS50ZXh0LlNpbXBsZURhdGVG b3JtYXQ7DQoNCmltcG9ydCBqYXZhLnRleHQuRGVjaW1hbEZvcm1hdDsNCg0K aW1wb3J0IGphdmEuaW8uU3RyaW5nV3JpdGVyOw0KDQppbXBvcnQgamF2YS5p by5QcmludFdyaXRlcjsNCg0KaW1wb3J0IG9yZy5hcGFjaGUuY29jb29uLmNv bXBvbmVudHMuZGF0YXNvdXJjZS5EYXRhU291cmNlQ29tcG9uZW50Ow0KDQpp bXBvcnQgb3JnLmFwYWNoZS5jb2Nvb24uY29tcG9uZW50cy5sYW5ndWFnZS5t YXJrdXAueHNwLlhTUFV0aWw7DQoNCg0KLyoqDQogKiBHZW5lcmF0ZWQgYnkg WFNQLiBFZGl0IGF0IHlvdXIgb3duIHJpc2ssIDotKQ0KICovDQpwdWJsaWMg Y2xhc3MgX2VzcWxfdGVzdF94c3AgZXh0ZW5kcyBYU1BHZW5lcmF0b3Igew0K ICBMb2dnZXIgbG9nID0gbnVsbDsNCiAgc3RhdGljIExvZ2dlciBjb2Nvb25M b2dnZXIgPSBMb2dLaXQuZ2V0TG9nZ2VyRm9yKCJjb2Nvb24iKTsNCg0KICBz dGF0aWMgew0KICAgIGRhdGVDcmVhdGVkID0gOTgxOTcyMDkxNzM1TDsNCiAg ICBkZXBlbmRlbmNpZXMgPSBuZXcgRmlsZVtdew0KICAgICAgICAgICAgICAg ICAgIH07DQogIH0NCg0KICAvKiBVc2VyIENsYXNzIERlY2xhcmF0aW9ucyAq Lw0KDQogIHByaXZhdGUgc3RhdGljIENvbXBvbmVudFNlbGVjdG9yIF9lc3Fs X3NlbGVjdG9yID0gbnVsbDsNCg0KICBwdWJsaWMgdm9pZCBjb21wb3NlKENv bXBvbmVudE1hbmFnZXIgbWFuYWdlcikgew0KICAgIHN1cGVyLmNvbXBvc2Uo bWFuYWdlcik7DQogICAgaWYgKF9lc3FsX3NlbGVjdG9yID09IG51bGwpIHsN CiAgICAgIHRyeSB7DQogICAgICAgIF9lc3FsX3NlbGVjdG9yID0gKENvbXBv bmVudFNlbGVjdG9yKSBtYW5hZ2VyLmxvb2t1cCgNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJvbGVzLkRCX0NPTk5FQ1RJT04pOw0KICAgICAgfSBj YXRjaCAoQ29tcG9uZW50TWFuYWdlckV4Y2VwdGlvbiBjbWUpIHsNCiAgICAg ICAgbG9nLmVycm9yKCJDb3VsZCBub3QgbG9vayB1cCB0aGUgZGF0YXNvdXJj ZSBjb21wb25lbnQiLCBjbWUpOw0KICAgICAgfQ0KICAgIH0NCiAgfQ0KDQog IGNsYXNzIEVzcWxDb25uZWN0aW9uIHsNCg0KICAgIERhdGFTb3VyY2VDb21w b25lbnQgZGF0YXNvdXJjZSA9IG51bGw7DQoNCiAgICBDb25uZWN0aW9uIGNv bm5lY3Rpb24gPSBudWxsOw0KICAgIFN0cmluZyBkYnVybCA9IG51bGw7DQog ICAgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsNCiAgICBTdHJpbmcgcGFzc3dv cmQgPSBudWxsOw0KICB9DQogIGNsYXNzIEVzcWxRdWVyeSB7DQogICAgU3Ry aW5nIHF1ZXJ5Ow0KICAgIFN0YXRlbWVudCBzdGF0ZW1lbnQ7DQogICAgUHJl cGFyZWRTdGF0ZW1lbnQgcHJlcGFyZWRfc3RhdGVtZW50Ow0KICAgIFJlc3Vs dFNldCByZXN1bHRzZXQ7DQogICAgUmVzdWx0U2V0TWV0YURhdGEgcmVzdWx0 c2V0X21ldGFkYXRhOw0KICAgIC8qKiB0aGUgcG9zaXRpb24gb2YgdGhlIGN1 cnJlbnQgcm93IGluIHRoZSByZXN1bHRzZXQgKiovDQogICAgaW50IHBvc2l0 aW9uID0gLTE7DQogICAgaW50IG1heF9yb3dzID0gLTE7DQogICAgaW50IHNr aXBfcm93cyA9IDA7DQogICAgYm9vbGVhbiByZXN1bHRzOw0KICB9DQoNCg0K ICAvKioNCiAgICogR2VuZXJhdGUgWE1MIGRhdGEuDQogICAqLw0KICBwdWJs aWMgdm9pZCBnZW5lcmF0ZUNvbnRlbnQoKSB0aHJvd3MgU0FYRXhjZXB0aW9u IHsNCiAgICBBdHRyaWJ1dGVzSW1wbCB4c3BBdHRyID0gbmV3IEF0dHJpYnV0 ZXNJbXBsKCk7DQoNCg0KDQogICAgdGhpcy5jb250ZW50SGFuZGxlci5zdGFy dFByZWZpeE1hcHBpbmcoInhzcGRvYyIsICJodHRwOi8vYXBhY2hlLm9yZy9j b2Nvb24vWFNQRG9jL3YxIik7DQoNCiAgICB0aGlzLmNvbnRlbnRIYW5kbGVy LnN0YXJ0UHJlZml4TWFwcGluZygiZXNxbCIsICJodHRwOi8vYXBhY2hlLm9y Zy9jb2Nvb24vU1FML3YyIik7DQoNCiAgICB0aGlzLmNvbnRlbnRIYW5kbGVy LnN0YXJ0UHJlZml4TWFwcGluZygieHNwIiwgImh0dHA6Ly9hcGFjaGUub3Jn L3hzcCIpOw0KDQoNCiAgICB0aGlzLmNvbnRlbnRIYW5kbGVyLnN0YXJ0RWxl bWVudCgiIiwgInBhZ2UiLCAicGFnZSIsIHhzcEF0dHIpOw0KDQogICAgeHNw QXR0ci5jbGVhcigpOw0KDQoNCiAgICBTdGFjayBfZXNxbF9jb25uZWN0aW9u cyA9IG5ldyBTdGFjaygpOw0KICAgIEVzcWxDb25uZWN0aW9uIF9lc3FsX2Nv bm5lY3Rpb24gPSBudWxsOw0KICAgIFN0YWNrIF9lc3FsX3F1ZXJpZXMgPSBu ZXcgU3RhY2soKTsNCiAgICBFc3FsUXVlcnkgX2VzcWxfcXVlcnkgPSBudWxs Ow0KICAgIFNRTEV4Y2VwdGlvbiBfZXNxbF9leGNlcHRpb24gPSBudWxsOw0K ICAgIFN0cmluZ1dyaXRlciBfZXNxbF9leGNlcHRpb25fd3JpdGVyID0gbnVs bDsNCg0KICAgIHRoaXMuY2hhcmFjdGVycygiXG5cblx0Iik7DQoNCiAgICBp ZiAoX2VzcWxfY29ubmVjdGlvbiAhPSBudWxsKSB7DQogICAgICBfZXNxbF9j b25uZWN0aW9ucy5wdXNoKF9lc3FsX2Nvbm5lY3Rpb24pOw0KICAgIH0NCiAg ICBfZXNxbF9jb25uZWN0aW9uID0gbmV3IEVzcWxDb25uZWN0aW9uKCk7DQog ICAgdHJ5IHsNCg0KICAgICAgdHJ5IHsNCiAgICAgICAgX2VzcWxfY29ubmVj dGlvbi5kYXRhc291cmNlID0NCiAgICAgICAgICAoRGF0YVNvdXJjZUNvbXBv bmVudClfZXNxbF9zZWxlY3Rvci5zZWxlY3QoDQogICAgICAgICAgICBTdHJp bmcudmFsdWVPZigiIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAi cGVyc29ubmVsIikpOw0KICAgICAgICBfZXNxbF9jb25uZWN0aW9uLmNvbm5l Y3Rpb24gPQ0KICAgICAgICAgIF9lc3FsX2Nvbm5lY3Rpb24uZGF0YXNvdXJj ZS5nZXRDb25uZWN0aW9uKCk7DQogICAgICB9IGNhdGNoIChFeGNlcHRpb24g X2VzcWxfZXhjZXB0aW9uX05GKSB7DQogICAgICAgIGNvY29vbkxvZ2dlci5l cnJvcigiQ291bGQgbm90IGdldCB0aGUgZGF0YXNvdXJjZSIsDQogICAgICAg ICAgICAgICAgICAgICAgICAgICBfZXNxbF9leGNlcHRpb25fTkYpOw0KICAg ICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQ291bGQgbm90IGdl dCB0aGUgZGF0YXNvdXJjZSAiKw0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfZXNxbF9leGNlcHRpb25fTkYpOw0KICAgICAgfQ0KDQog ICAgICB0cnkgew0KICAgICAgICBpZiAoImZhbHNlIi5lcXVhbHMoU3RyaW5n LnZhbHVlT2YoIiIpKSkgew0KICAgICAgICAgIF9lc3FsX2Nvbm5lY3Rpb24u Y29ubmVjdGlvbi5zZXRBdXRvQ29tbWl0KGZhbHNlKTsNCiAgICAgICAgfSBl bHNlIHsNCiAgICAgICAgICBfZXNxbF9jb25uZWN0aW9uLmNvbm5lY3Rpb24u c2V0QXV0b0NvbW1pdCh0cnVlKTsNCiAgICAgICAgfQ0KICAgICAgfSBjYXRj aCAoRXhjZXB0aW9uIF9lc3FsX2V4Y2VwdGlvbl9ORikgew0KICAgICAgICB0 aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiRXJyb3Igc2V0dGluZyBjb25u ZWN0aW9uIGF1dG9jb21taXQiKTsNCiAgICAgIH0NCg0KICAgICAgdGhpcy5j aGFyYWN0ZXJzKCJcblx0ICAiKTsNCg0KICAgICAgdGhpcy5jaGFyYWN0ZXJz KCJcblx0ICAgIik7DQoNCiAgICAgIGlmIChfZXNxbF9xdWVyeSAhPSBudWxs KSB7DQogICAgICAgIF9lc3FsX3F1ZXJpZXMucHVzaChfZXNxbF9xdWVyeSk7 DQogICAgICB9DQogICAgICBfZXNxbF9xdWVyeSA9IG5ldyBFc3FsUXVlcnko KTsNCiAgICAgIF9lc3FsX3F1ZXJ5LnF1ZXJ5ID0gU3RyaW5nLnZhbHVlT2Yo IiINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KyAiXG5cdCAgICAgIHNlbGVjdCAqIGZyb20gVGVzdFZpZGVvc1xuXHQgICAg Iik7DQogICAgICB0cnkgew0KICAgICAgICBfZXNxbF9xdWVyeS5tYXhfcm93 cyA9IEludGVnZXIucGFyc2VJbnQoU3RyaW5nLnZhbHVlT2YoIiIpKTsNCiAg ICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7fQ0KICAg ICAgdHJ5IHsNCiAgICAgICAgX2VzcWxfcXVlcnkuc2tpcF9yb3dzID0gSW50 ZWdlci5wYXJzZUludChTdHJpbmcudmFsdWVPZigiIikpOw0KICAgICAgfSBj YXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHt9DQogICAgICB0cnkg ew0KDQogICAgICAgIF9lc3FsX3F1ZXJ5LnN0YXRlbWVudCA9DQogICAgICAg ICAgX2VzcWxfY29ubmVjdGlvbi5jb25uZWN0aW9uLmNyZWF0ZVN0YXRlbWVu dCgpOw0KICAgICAgICBfZXNxbF9xdWVyeS5yZXN1bHRzID0NCiAgICAgICAg ICBfZXNxbF9xdWVyeS5zdGF0ZW1lbnQuZXhlY3V0ZShfZXNxbF9xdWVyeS5x dWVyeSk7DQoNCiAgICAgICAgaWYgKF9lc3FsX3F1ZXJ5LnJlc3VsdHMpIHsN CiAgICAgICAgICBfZXNxbF9xdWVyeS5yZXN1bHRzZXQgPSBfZXNxbF9xdWVy eS5zdGF0ZW1lbnQuZ2V0UmVzdWx0U2V0KCk7DQogICAgICAgICAgX2VzcWxf cXVlcnkucmVzdWx0c2V0X21ldGFkYXRhID0NCiAgICAgICAgICAgIF9lc3Fs X3F1ZXJ5LnJlc3VsdHNldC5nZXRNZXRhRGF0YSgpOw0KICAgICAgICAgIF9l c3FsX3F1ZXJ5LnBvc2l0aW9uID0gMDsNCiAgICAgICAgICBpZiAoX2VzcWxf cXVlcnkuc2tpcF9yb3dzID4gMCkgew0KICAgICAgICAgICAgd2hpbGUgKF9l c3FsX3F1ZXJ5LnJlc3VsdHNldC5uZXh0KCkpIHsNCiAgICAgICAgICAgICAg X2VzcWxfcXVlcnkucG9zaXRpb24rKzsNCiAgICAgICAgICAgICAgaWYgKF9l c3FsX3F1ZXJ5LnBvc2l0aW9uID09IF9lc3FsX3F1ZXJ5LnNraXBfcm93cykg ew0KICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgICB9DQog ICAgICAgICAgICB9DQogICAgICAgICAgfQ0KDQogICAgICAgICAgdGhpcy5j aGFyYWN0ZXJzKCJcbiAgICAgICAgICAgICAgIik7DQoNCiAgICAgICAgICB3 aGlsZSAoX2VzcWxfcXVlcnkucmVzdWx0c2V0Lm5leHQoKSkgew0KDQogICAg ICAgICAgICB0aGlzLmNoYXJhY3RlcnMoIlxuXHRcdCIpOw0KDQogICAgICAg ICAgICB0aGlzLmNvbnRlbnRIYW5kbGVyLnN0YXJ0UHJlZml4TWFwcGluZygi eHNwZG9jIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJodHRwOi8vYXBhY2hlLm9yZy9jb2Nvb24vWFNQ RG9jL3YxIik7DQoNCiAgICAgICAgICAgIHRoaXMuY29udGVudEhhbmRsZXIu c3RhcnRQcmVmaXhNYXBwaW5nKCJlc3FsIiwgImh0dHA6Ly9hcGFjaGUub3Jn L2NvY29vbi9TUUwvdjIiKTsNCg0KICAgICAgICAgICAgdGhpcy5jb250ZW50 SGFuZGxlci5zdGFydFByZWZpeE1hcHBpbmcoInhzcCIsICJodHRwOi8vYXBh Y2hlLm9yZy94c3AiKTsNCg0KDQogICAgICAgICAgICB0aGlzLmNvbnRlbnRI YW5kbGVyLnN0YXJ0RWxlbWVudCgiIiwgInJlc3VsdCIsICJyZXN1bHQiLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg eHNwQXR0cik7DQoNCiAgICAgICAgICAgIHhzcEF0dHIuY2xlYXIoKTsNCg0K DQogICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnMoIlxuICAgICAgICAgICAg ICAgICAgIik7DQoNCiAgICAgICAgICAgIGZvciAoaW50IF9lc3FsX2kgPSAx OyBfZXNxbF9pIDw9DQogICAgICAgICAgICAgICAgICBfZXNxbF9xdWVyeS5y ZXN1bHRzZXRfbWV0YWRhdGEuZ2V0Q29sdW1uQ291bnQoKQ0KICAgICAgICAg ICAgICAgICAgOyBfZXNxbF9pKyspIHsNCiAgICAgICAgICAgICAgU3RyaW5n IF9lc3FsX3RhZ25hbWUgPQ0KICAgICAgICAgICAgICAgIF9lc3FsX3F1ZXJ5 LnJlc3VsdHNldF9tZXRhZGF0YS5nZXRDb2x1bW5OYW1lKA0KICAgICAgICAg ICAgICAgICAgX2VzcWxfaSk7DQoNCiAgICAgICAgICAgICAgdGhpcy5jb250 ZW50SGFuZGxlci5zdGFydFByZWZpeE1hcHBpbmcoInhzcGRvYyIsDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJodHRwOi8vYXBhY2hlLm9yZy9jb2Nvb24vWFNQRG9jL3YxIik7DQoN CiAgICAgICAgICAgICAgdGhpcy5jb250ZW50SGFuZGxlci5zdGFydFByZWZp eE1hcHBpbmcoImVzcWwiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL2FwYWNoZS5vcmcv Y29jb29uL1NRTC92MiIpOw0KDQogICAgICAgICAgICAgIHRoaXMuY29udGVu dEhhbmRsZXIuc3RhcnRQcmVmaXhNYXBwaW5nKCJ4c3AiLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi aHR0cDovL2FwYWNoZS5vcmcveHNwIik7DQoNCg0KICAgICAgICAgICAgICB0 aGlzLmNvbnRlbnRIYW5kbGVyLnN0YXJ0RWxlbWVudCgiIiwNCg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2Vz cWxfdGFnbmFtZSksDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKF9lc3FsX3RhZ25hbWUpLCB4c3BBdHRyKTsN Cg0KICAgICAgICAgICAgICB4c3BBdHRyLmNsZWFyKCk7DQoNCg0KDQogICAg ICAgICAgICAgIFhTUE9iamVjdEhlbHBlci54c3BFeHByKGNvbnRlbnRIYW5k bGVyLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf ZXNxbF9xdWVyeS5yZXN1bHRzZXQuZ2V0U3RyaW5nKF9lc3FsX2kpKTsNCg0K DQogICAgICAgICAgICAgIHRoaXMuY29udGVudEhhbmRsZXIuZW5kRWxlbWVu dCgiIiwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKF9lc3FsX3RhZ25hbWUpLA0KDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2VzcWxfdGFnbmFtZSkN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KTsNCg0KDQogICAgICAgICAgICAgIHRoaXMuY29udGVudEhhbmRsZXIuZW5k UHJlZml4TWFwcGluZygieHNwZG9jIik7DQoNCiAgICAgICAgICAgICAgdGhp cy5jb250ZW50SGFuZGxlci5lbmRQcmVmaXhNYXBwaW5nKCJlc3FsIik7DQoN CiAgICAgICAgICAgICAgdGhpcy5jb250ZW50SGFuZGxlci5lbmRQcmVmaXhN YXBwaW5nKCJ4c3AiKTsNCg0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAg dGhpcy5jaGFyYWN0ZXJzKCJcbiIpOw0KDQogICAgICAgICAgICB0aGlzLmNo YXJhY3RlcnMoIlxuXHRcdCIpOw0KDQoNCiAgICAgICAgICAgIHRoaXMuY29u dGVudEhhbmRsZXIuZW5kRWxlbWVudCgiIiwgInJlc3VsdCIsICJyZXN1bHQi KTsNCg0KDQogICAgICAgICAgICB0aGlzLmNvbnRlbnRIYW5kbGVyLmVuZFBy ZWZpeE1hcHBpbmcoInhzcGRvYyIpOw0KDQogICAgICAgICAgICB0aGlzLmNv bnRlbnRIYW5kbGVyLmVuZFByZWZpeE1hcHBpbmcoImVzcWwiKTsNCg0KICAg ICAgICAgICAgdGhpcy5jb250ZW50SGFuZGxlci5lbmRQcmVmaXhNYXBwaW5n KCJ4c3AiKTsNCg0KICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzKCJcbiAg ICAgICAgICAgICAgIik7DQoNCiAgICAgICAgICAgIF9lc3FsX3F1ZXJ5LnBv c2l0aW9uKys7DQogICAgICAgICAgICBpZiAoX2VzcWxfcXVlcnkubWF4X3Jv d3MgIT0gLTEgJiYgX2VzcWxfcXVlcnkucG9zaXRpb24gLQ0KICAgICAgICAg ICAgICAgIF9lc3FsX3F1ZXJ5LnNraXBfcm93cyA9PQ0KICAgICAgICAgICAg ICAgIF9lc3FsX3F1ZXJ5Lm1heF9yb3dzIC0gMSkgew0KICAgICAgICAgICAg ICBicmVhazsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQoNCiAgICAg ICAgICB0aGlzLmNoYXJhY3RlcnMoIlxuICAgICAgICAgICAgIik7DQoNCiAg ICAgICAgICBfZXNxbF9xdWVyeS5yZXN1bHRzZXQuY2xvc2UoKTsNCiAgICAg ICAgfSBlbHNlIHsNCiAgICAgICAgICBfZXNxbF9xdWVyeS5wb3NpdGlvbiA9 DQogICAgICAgICAgICBfZXNxbF9xdWVyeS5zdGF0ZW1lbnQuZ2V0VXBkYXRl Q291bnQoKTsNCiAgICAgICAgICBpZiAoX2VzcWxfcXVlcnkucG9zaXRpb24g Pj0gMCkgew0KDQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICAgIF9l c3FsX3F1ZXJ5LnN0YXRlbWVudC5jbG9zZSgpOw0KICAgICAgfSBjYXRjaCAo U1FMRXhjZXB0aW9uIF9lc3FsX2V4Y2VwdGlvbl9OMTcpIHsNCiAgICAgICAg dHJ5IHsNCg0KICAgICAgICAgIGlmICghX2VzcWxfY29ubmVjdGlvbi5jb25u ZWN0aW9uLmdldEF1dG9Db21taXQoKSkgew0KICAgICAgICAgICAgX2VzcWxf Y29ubmVjdGlvbi5jb25uZWN0aW9uLnJvbGxiYWNrKCk7DQogICAgICAgICAg fQ0KDQogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBfZXNxbF9leGNlcHRp b25fTjE3XzIpIHt9DQogICAgICB9DQogICAgICBpZiAoX2VzcWxfcXVlcmll cy5lbXB0eSgpKSB7DQogICAgICAgIF9lc3FsX3F1ZXJ5ID0gbnVsbDsNCiAg ICAgIH0gZWxzZSB7DQogICAgICAgIF9lc3FsX3F1ZXJ5ID0gKEVzcWxRdWVy eSlfZXNxbF9xdWVyaWVzLnBvcCgpOw0KICAgICAgfQ0KDQogICAgICB0aGlz LmNoYXJhY3RlcnMoIlxuXHQiKTsNCg0KICAgIH0NCiAgICBmaW5hbGx5IHsg dHJ5IHsNCiAgICAgICAgICAgICAgaWYgKCFfZXNxbF9jb25uZWN0aW9uLmNv bm5lY3Rpb24uZ2V0QXV0b0NvbW1pdCgpKSB7DQogICAgICAgICAgICAgICAg ICBfZXNxbF9jb25uZWN0aW9uLmNvbm5lY3Rpb24uY29tbWl0KCk7DQogICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgX2VzcWxfY29ubmVj dGlvbi5jb25uZWN0aW9uLmNsb3NlKCk7DQoNCiAgICAgICAgICAgICAgaWYg KF9lc3FsX2Nvbm5lY3Rpb25zLmVtcHR5KCkpIHsNCiAgICAgICAgICAgICAg ICAgIF9lc3FsX2Nvbm5lY3Rpb24gPSBudWxsOw0KICAgICAgICAgICAgICB9 IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgX2VzcWxfY29ubmVjdGlvbiA9 IChFc3FsQ29ubmVjdGlvbilfZXNxbF9jb25uZWN0aW9ucy5wb3AoKTsNCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRp b24gX2VzcWxfZXhjZXB0aW9uX05GKSB7fQ0KICAgICAgICAgICAgfQ0KICAg IHRoaXMuY2hhcmFjdGVycygiXG5cbiAgIik7DQoNCg0KICAgIHRoaXMuY29u dGVudEhhbmRsZXIuZW5kRWxlbWVudCgiIiwgInBhZ2UiLCAicGFnZSIpOw0K DQoNCiAgICB0aGlzLmNvbnRlbnRIYW5kbGVyLmVuZFByZWZpeE1hcHBpbmco InhzcGRvYyIpOw0KDQogICAgdGhpcy5jb250ZW50SGFuZGxlci5lbmRQcmVm aXhNYXBwaW5nKCJlc3FsIik7DQoNCiAgICB0aGlzLmNvbnRlbnRIYW5kbGVy LmVuZFByZWZpeE1hcHBpbmcoInhzcCIpOw0KDQogIH0NCg0KICBwdWJsaWMg dm9pZCBnZW5lcmF0ZSgpIHRocm93cyBTQVhFeGNlcHRpb24gew0KICAgIHRo aXMuY29udGVudEhhbmRsZXIuc3RhcnREb2N1bWVudCgpOw0KICAgIEF0dHJp YnV0ZXNJbXBsIHhzcEF0dHIgPSBuZXcgQXR0cmlidXRlc0ltcGwoKTsNCg0K DQoNCiAgICB0aGlzLmNvbnRlbnRIYW5kbGVyLnN0YXJ0UHJlZml4TWFwcGlu ZygieHNwZG9jIiwgImh0dHA6Ly9hcGFjaGUub3JnL2NvY29vbi9YU1BEb2Mv djEiKTsNCg0KICAgIHRoaXMuY29udGVudEhhbmRsZXIuc3RhcnRQcmVmaXhN YXBwaW5nKCJlc3FsIiwgImh0dHA6Ly9hcGFjaGUub3JnL2NvY29vbi9TUUwv djIiKTsNCg0KDQogICAgZ2VuZXJhdGVDb250ZW50KCk7DQoNCg0KDQogICAg dGhpcy5jb250ZW50SGFuZGxlci5lbmRQcmVmaXhNYXBwaW5nKCJ4c3Bkb2Mi KTsNCg0KICAgIHRoaXMuY29udGVudEhhbmRsZXIuZW5kUHJlZml4TWFwcGlu ZygiZXNxbCIpOw0KDQoNCiAgICB0aGlzLmNvbnRlbnRIYW5kbGVyLmVuZERv Y3VtZW50KCk7DQogIH0NCn0NCg0K ---595332856-350340115-981973992=:17541--