Author: rdonkin Date: Wed Aug 2 14:02:21 2006 New Revision: 428147 URL: http://svn.apache.org/viewvc?rev=428147&view=rev Log: Improved error reporting in the case of a cycle reference. Based on JIRA BETWIXT-54 contributed by Holger Haag. This reduces the level at which the error is reported to info but compensates by adding more useful information to the exception.
Modified: jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/io/AbstractBeanWriter.java Modified: jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/io/AbstractBeanWriter.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/io/AbstractBeanWriter.java?rev=428147&r1=428146&r2=428147&view=diff ============================================================================== --- jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/io/AbstractBeanWriter.java (original) +++ jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/io/AbstractBeanWriter.java Wed Aug 2 14:02:21 2006 @@ -1019,15 +1019,23 @@ // use absolute equality rather than equals // we're only really bothered if objects are actually the same if ( bean == next ) { - if ( log.isDebugEnabled() ) { - log.debug("Element stack: "); - Iterator debugStack = beanStack.iterator(); - while ( debugStack.hasNext() ) { - log.debug(debugStack.next()); - } + final String message = "Cyclic reference at bean: " + bean; + log.error(message); + StringBuffer buffer = new StringBuffer(message); + buffer.append(" Stack: "); + Iterator errorStack = beanStack.iterator(); + while ( errorStack.hasNext() ) { + Object errorObj = errorStack.next(); + if(errorObj != null) { + buffer.append(errorObj.getClass().getName()); + buffer.append(": "); + } + buffer.append(errorObj); + buffer.append(";"); } - log.error("Cyclic reference at bean: " + bean); - throw new CyclicReferenceException(); + final String debugMessage = buffer.toString(); + log.info( debugMessage ); + throw new CyclicReferenceException( debugMessage ); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]