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]