Return-Path: Delivered-To: apmail-ibatis-user-java-archive@www.apache.org Received: (qmail 68083 invoked from network); 29 Aug 2006 20:41:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 29 Aug 2006 20:41:02 -0000 Received: (qmail 96133 invoked by uid 500); 29 Aug 2006 20:40:59 -0000 Delivered-To: apmail-ibatis-user-java-archive@ibatis.apache.org Received: (qmail 96119 invoked by uid 500); 29 Aug 2006 20:40:59 -0000 Mailing-List: contact user-java-help@ibatis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user-java@ibatis.apache.org Delivered-To: mailing list user-java@ibatis.apache.org Received: (qmail 96108 invoked by uid 99); 29 Aug 2006 20:40:59 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Aug 2006 13:40:59 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: unknown (asf.osuosl.org: error in processing during lookup of Adam.Klein@aqr.com) Received: from [65.223.234.91] (HELO SG0PIMX01.AQRCAPITAL.COM) (65.223.234.91) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 29 Aug 2006 13:40:58 -0700 Received: from sg0pexf02.aqrcapital.com ([10.30.4.183]) by SG0PIMX01.AQRCAPITAL.COM with ESMTP; 29 Aug 2006 16:40:37 -0400 X-IronPort-AV: i="4.08,183,1154923200"; d="scan'208"; a="1413938:sNHT41780796" Received: from MG0PEXC01.aqrcapital.com ([10.30.4.170]) by sg0pexf02.aqrcapital.com with Microsoft SMTPSVC(6.0.3790.1830); Tue, 29 Aug 2006 16:40:37 -0400 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.1830 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: bug in javabeans setter (ComplexBeanProbe.java)? Date: Tue, 29 Aug 2006 16:40:37 -0400 Message-ID: <8A0052EB3E72CF45B236A55DA0E3B4371A8BDA@MG0PEXC01.aqrcapital.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: bug in javabeans setter (ComplexBeanProbe.java)? Thread-Index: AcbLl6ato7P/B0PvRfW0lWqNyPRPKwAEu0bg From: "Adam Klein" To: Importance: normal Priority: normal X-OriginalArrivalTime: 29 Aug 2006 20:40:37.0497 (UTC) FILETIME=[6241E690:01C6CBAB] X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Apologies if this is posted twice, I don't think my first one made it. I had implemented defensive copying on my javabean setter methods - ie, = so the value of the bean would be set to a COPY of the parameter - = while the getter would return a direct reference. Then, when I was = trying to set keys in an (uninitiailized) HashMap object to values like = this: I got a very strange result: of the values in myHashMap, only the value = of myHashMap.key2 would be set; in general, the first key of an = (uninitialized) HashMap would never be assigned a value. I traced the = reason to the ComplexBeanProbe.java file, in the setObject method: it = called the method setObject(parent, property, child) prior to calling = setProperty(child, property, value), which meant that the parent.child = object no longer referenced the child object by the time the code = attempted to set values on the child object (due specifically to my = defensive copying). If myHashMap is initialized to an empty HashMap = value on creation of MyClass, there are no problems. The question is, is this just a symptom of defensive copying, or is this = a bug, where setProperty(child, property, value) should be called first? Regards, Adam =20 =20 =20 =20 =20 Disclaimer: This e-mail may contain confidential and/or privileged = information. If you are not the intended recipient or have received = this e-mail in error, please notify the sender immediately and = destroy/delete this e-mail. You are hereby notified that any = unauthorized copying, disclosure or distribution of the material in this = e-mail is strictly prohibited. =20 This communication is for informational purposes only. It is not = intended as an offer or solicitation for the purchase or sale of any = financial instrument or as an official confirmation of any transaction. = All information contained in this communication is not warranted as to = completeness or accuracy and is subject to change without notice. Any = comments or statements made in this communication do not necessarily = reflect those of AQR Capital Management, LLC and its affiliates.