Bug 1631576, Cannot anonymous subclass with arguments
"Tom Moore" <[email protected]> Tue, 25 Sep 2007 16:57:46 -0400
| Newsgroups | gmane.comp.java.beanshell.devel |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_654_32742368.1190753866524 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline It looks like this is a dupe of bug #1627493. The problem is that the generated code does not know how to call the superclass constructor. The default is to insert a default no-args constructor, which is why this works in some situations and not others. I have made a hack/patch that fixes this behavior. It basically inserts a method that looks like a constructor and calls super with the argument types specified in the allocator. This is as localized and non-intrusive as I could think to make it. It seems to work. Patch is as follows. ------=_Part_654_32742368.1190753866524 Content-Type: application/octet-stream; name="allocation.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="allocation.patch" X-Attachment-Id: file0 KioqIENvcHkgb2YgQmVhblNoZWxsLTIuMGI1XHNyY1xic2hcQlNIQWxsb2NhdGlvbkV4cHJlc3Np b24uamF2YQlTYXQgSnVuIDExIDIzOjE2OjQyIDIwMDUKLS0tIEJlYW5TaGVsbC0yLjBiNVxzcmNc YnNoXEJTSEFsbG9jYXRpb25FeHByZXNzaW9uLmphdmEJVHVlIFNlcCAyNSAxMjo1MDoxNiAyMDA3 CioqKioqKioqKioqKioqKgoqKiogMzQsMzkgKioqKgotLS0gMzQsNDAgLS0tLQogIAogIHBhY2th Z2UgYnNoOwogIAorIGltcG9ydCBqYXZhLmlvLlN0cmluZ1JlYWRlcjsKICBpbXBvcnQgamF2YS5s YW5nLnJlZmxlY3QuQXJyYXk7CiAgaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25U YXJnZXRFeGNlcHRpb247CiAgCioqKioqKioqKioqKioqKgoqKiogMTc5LDE4OCAqKioqCiAgCXsK ICAJCS8vdGhyb3cgbmV3IEludGVycHJldGVyRXJyb3IoImNvbnN0cnVjdFdpdGhDbGFzc0JvZHkg dW5pbXBsZW1lbnRlZCIpOwogIAohIAkJU3RyaW5nIG5hbWUgPSBjYWxsc3RhY2sudG9wKCkuZ2V0 TmFtZSgpICsgIiQiICsgKCsraW5uZXJDbGFzc0NvdW50KTsKICAJCU1vZGlmaWVycyBtb2RpZmll cnMgPSBuZXcgTW9kaWZpZXJzKCk7CiAgCQltb2RpZmllcnMuYWRkTW9kaWZpZXIoIE1vZGlmaWVy cy5DTEFTUywgInB1YmxpYyIgKTsKICAJCUNsYXNzIGNsYXM7CiAgCQl0cnkgewogIAkJCWNsYXMg PSBDbGFzc0dlbmVyYXRvci5nZXRDbGFzc0dlbmVyYXRvcigpIC5nZW5lcmF0ZUNsYXNzKCAKICAJ CQkJbmFtZSwgbW9kaWZpZXJzLCBudWxsLyppbnRlcmZhY2VzKi8sIHR5cGUvKnN1cGVyQ2xhc3Mq LywKLS0tIDE4MCwyMTIgLS0tLQogIAl7CiAgCQkvL3Rocm93IG5ldyBJbnRlcnByZXRlckVycm9y KCJjb25zdHJ1Y3RXaXRoQ2xhc3NCb2R5IHVuaW1wbGVtZW50ZWQiKTsKICAKISAJCVN0cmluZyBp bm5lciA9ICJhbm9uIiArICgrK2lubmVyQ2xhc3NDb3VudCk7CiEgCQlTdHJpbmcgbmFtZSA9IGNh bGxzdGFjay50b3AoKS5nZXROYW1lKCkgKyAiJCIgKyBpbm5lcjsKICAJCU1vZGlmaWVycyBtb2Rp ZmllcnMgPSBuZXcgTW9kaWZpZXJzKCk7CiAgCQltb2RpZmllcnMuYWRkTW9kaWZpZXIoIE1vZGlm aWVycy5DTEFTUywgInB1YmxpYyIgKTsKICAJCUNsYXNzIGNsYXM7CisgCisgCQkvLyBJZiB0aGUg Y2xhc3Mgd2FzIGNyZWF0ZWQgd2l0aCBhcmd1bWVudHMgdGhlbiBhZGQgYSBjb25zdHJ1Y3RvciB0 aGF0IHNpbXBsZSBpbnZva2VzIHN1cGVyCisgCQlpZiAoYXJncy5sZW5ndGggPiAwKSB7CisgCQkg ICBTdHJpbmcgZm9ybWFsID0gIiI7CisgCQkgICBTdHJpbmcgYXJnbmFtZXMgPSAiIjsKKyAJCSAg IGZvciAoaW50IGk9MDsgaTxhcmdzLmxlbmd0aDsgaSsrKSB7CisgCQkgICAgICBpZiAoaT4wKSB7 CisgCQkJIGZvcm1hbCArPSAiLCAiOworIAkJCSBhcmduYW1lcyArPSAiLCAiOworIAkJICAgICAg fQorIAkJICAgICAgU3RyaW5nIGFyZ25hbWUgPSBTdHJpbmcudmFsdWVPZigoY2hhcikgKDk3K2kp KTsKKyAJCSAgICAgIGFyZ25hbWVzICs9IGFyZ25hbWU7CisgCQkgICAgICBmb3JtYWwgKz0gYXJn c1tpXS5nZXRDbGFzcygpLmdldE5hbWUoKSsiICIrYXJnbmFtZTsKKyAJCSAgIH0KKyAJCSAgIFN0 cmluZyBjb21tYW5kID0gaW5uZXIrIigiK2Zvcm1hbCsiKSB7c3VwZXIoIithcmduYW1lcysiKTt9 IjsKKyAJCVBhcnNlciBwID0gbmV3IFBhcnNlcihuZXcgU3RyaW5nUmVhZGVyKGNvbW1hbmQpKTsK KyAJCXAuTGluZSgpOworIAkJQlNITWV0aG9kRGVjbGFyYXRpb24gbm9kZSA9IChCU0hNZXRob2RE ZWNsYXJhdGlvbikgcC5wb3BOb2RlKCk7CisgCQlub2RlLmV2YWwobmV3IENhbGxTdGFjaygpLCBu ZXcgSW50ZXJwcmV0ZXIoKSk7CisgCQlibG9jay5qanRBZGRDaGlsZChub2RlLCBibG9jay5qanRH ZXROdW1DaGlsZHJlbigpKTsKKyAJCX0KKyAKICAJCXRyeSB7CiAgCQkJY2xhcyA9IENsYXNzR2Vu ZXJhdG9yLmdldENsYXNzR2VuZXJhdG9yKCkgLmdlbmVyYXRlQ2xhc3MoIAogIAkJCQluYW1lLCBt b2RpZmllcnMsIG51bGwvKmludGVyZmFjZXMqLywgdHlwZS8qc3VwZXJDbGFzcyovLAo= ------=_Part_654_32742368.1190753866524 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ ------=_Part_654_32742368.1190753866524 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Beanshell-developers mailing list Beanshell-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org https://lists.sourceforge.net/lists/listinfo/beanshell-developers ------=_Part_654_32742368.1190753866524--