Return-Path: Delivered-To: apmail-commons-issues-archive@locus.apache.org Received: (qmail 86576 invoked from network); 23 Sep 2008 22:14:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 23 Sep 2008 22:14:37 -0000 Received: (qmail 86152 invoked by uid 500); 23 Sep 2008 22:14:34 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 85734 invoked by uid 500); 23 Sep 2008 22:14:33 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 85638 invoked by uid 99); 23 Sep 2008 22:14:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Sep 2008 15:14:32 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 23 Sep 2008 22:13:40 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 5332E234C1F6 for ; Tue, 23 Sep 2008 15:13:44 -0700 (PDT) Message-ID: <2087358464.1222208024339.JavaMail.jira@brutus> Date: Tue, 23 Sep 2008 15:13:44 -0700 (PDT) From: "Bob Fields (JIRA)" To: issues@commons.apache.org Subject: [jira] Updated: (LANG-456) HashCodeBuilder throws StackOverflowError in bidirectional navigable association In-Reply-To: <926828740.1219846904284.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/LANG-456?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Bob Fields updated LANG-456: ---------------------------- Attachment: HashCodeBuilderStackOverflow.zip Does anybody even use JDK 1.3 any more? I haven't had it on my machine in years. Here's an updated version with all the Jaxb stuff removed, built with JDK 1.4.2 with compiler compliance level set to JDK 1.3, that should work for you. There's no dependencies other than commons-lang and JUnit. > HashCodeBuilder throws StackOverflowError in bidirectional navigable association > -------------------------------------------------------------------------------- > > Key: LANG-456 > URL: https://issues.apache.org/jira/browse/LANG-456 > Project: Commons Lang > Issue Type: Bug > Affects Versions: 2.4 > Environment: Widows XP. Sun JDK 1.5 or 1.6. > Reporter: Bob Fields > Attachments: HashCodeBuilderStackOverflow.zip, StackOverflowError.zip > > > This is not the reflection methods, it is the regular HashCodeBuilder append methods. It causes EqualsBuilder, ToStringBuilder, CompareToBuilder to also throw the StackOverflowException, but those methods work when one of the HashCodeBuilder bidirectional association attributes .hashCode() is commented out. The problem is that all of the builders call registerObject() which creates a hashCode, but only the reflectionAppend method checks if an object is registered. > Bi-directional associations are a very common pattern in Jaxb and Hibernate. In this case, I generate code from a model in order to avoid the reflection penalty - I already know what the attributes are at compile time, so I use .append instead of .reflectionAppend. > See attached example + unit test. One side of the bidirectional association must be commented out in the hashCode method. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.