DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=31425>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=31425 [Patch] Handle Throwables, Exceptinos and Errors as complex types Summary: [Patch] Handle Throwables, Exceptinos and Errors as complex types Product: Commons Version: Nightly Builds Platform: All OS/Version: Other Status: NEW Severity: Enhancement Priority: Other Component: Betwixt AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I needed to serialize some exception instances to XML and was surprised that betwixt handles them as primitive type (because they are under 'java.lang.'). I needed a detailed output for the cause property of the exceptions instead just a string representation. So I patched the current version (2004-09-25) of betwixt to handle types starting with 'java.lang.' and ending with 'Exception', 'Error' or 'Throwable' as complex. So I get nice XML for ex.getCause(): <cause> <message>a cause</message> <stack-trace> <step> <class-name>com.triplemind.test.TestBetwixt</class-name> <file-name>TestBetwixt.java</file-name> <line-number>28</line-number> <method-name>method</method-name> </step> <step> <class-name>com.triplemind.test.TestBetwixt</class-name> <file-name>TestBetwixt.java</file-name> <line-number>68</line-number> <method-name>main</method-name> </step> </stack-trace> <cause> <message>/ by zero</message> <stack-trace> <class-name>com.triplemind.test.TestBetwixt</class-name> <file-name>TestBetwixt.java</file-name> <line-number>25</line-number> <method-name>method</method-name> </stack-trace> <stack-trace> <class-name>com.triplemind.test.TestBetwixt</class-name> <file-name>TestBetwixt.java</file-name> <line-number>68</line-number> <method-name>main</method-name> </stack-trace> </cause> </cause> I hope this functionality is of general interest and will find it's way into the next release of betwixt. you can find the pathc at the bottom of this message. regards, Christoph Gaffga [EMAIL PROTECTED] Index: TypeBindingStrategy.java =================================================================== RCS file: /home/cvspublic/jakarta- commons/betwixt/src/java/org/apache/commons/betwixt/strategy/TypeBindingStrateg y.java,v retrieving revision 1.1 diff -u -r1.1 TypeBindingStrategy.java --- TypeBindingStrategy.java 14 Jul 2004 21:37:54 -0000 1.1 +++ TypeBindingStrategy.java 26 Sep 2004 14:14:53 -0000 @@ -152,6 +152,12 @@ } else if ( type.equals( Object.class ) ) { return false; + } else if ( type.getName().startsWith( "java.lang." ) + && ( type.getName().endsWith( "Exception" ) + || type.getName().endsWith( "Error" ) + || type.getName().endsWith( "Throwable" ) + ) ) { + return false; } return type.getName().startsWith( "java.lang." ) || Number.class.isAssignableFrom( type ) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]