Return-Path: Delivered-To: apmail-xml-cocoon-cvs-archive@xml.apache.org Received: (qmail 53523 invoked by uid 500); 2 Feb 2003 23:26:53 -0000 Mailing-List: contact cocoon-cvs-help@xml.apache.org; run by ezmlm Precedence: bulk Reply-To: cocoon-dev@xml.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list cocoon-cvs@xml.apache.org Received: (qmail 53514 invoked by uid 500); 2 Feb 2003 23:26:52 -0000 Delivered-To: apmail-xml-cocoon2-cvs@apache.org Date: 2 Feb 2003 23:26:51 -0000 Message-ID: <20030202232651.5627.qmail@icarus.apache.org> From: vgritsenko@apache.org To: xml-cocoon2-cvs@apache.org Subject: cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/notification DefaultNotifyingBuilder.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N vgritsenko 2003/02/02 15:26:51 Modified: src/java/org/apache/cocoon/components/notification DefaultNotifyingBuilder.java Log: Align code. Use those constants. Use addExtraDescriptions instead of replaceExtraDescriptions Revision Changes Path 1.12 +151 -147 xml-cocoon2/src/java/org/apache/cocoon/components/notification/DefaultNotifyingBuilder.java Index: DefaultNotifyingBuilder.java =================================================================== RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/notification/DefaultNotifyingBuilder.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- DefaultNotifyingBuilder.java 31 Jan 2003 22:51:30 -0000 1.11 +++ DefaultNotifyingBuilder.java 2 Feb 2003 23:26:51 -0000 1.12 @@ -73,159 +73,163 @@ */ public class DefaultNotifyingBuilder implements NotifyingBuilder, Component { - /** Builds a Notifying object (SimpleNotifyingBean in this case) - * that tries to explain what the Object o can reveal. - * @param sender who sent this Object. - * @param o the object to use when building the SimpleNotifyingBean - * @return the Notifying Object that was build - * @see org.apache.cocoon.components.notification.Notifying - */ - public Notifying build (Object sender, Object o) { - if (o instanceof Notifying) { - return (Notifying) o; - } else if (o instanceof Throwable) { - Throwable t = (Throwable) o; - SimpleNotifyingBean n = new SimpleNotifyingBean(sender); - n.setType("error"); - n.setTitle("An error occurred"); - if (t != null) { - - n.setSource(t.getClass().getName()); - - Throwable rootCauseThrowable = getRootCause(t); - n.addExtraDescription("original message", rootCauseThrowable.toString()); - - if (rootCauseThrowable instanceof SAXParseException) { - - SAXParseException saxParseException = (SAXParseException) rootCauseThrowable; - n.setMessage ( saxParseException.getMessage() ); - n.addExtraDescription("location", String.valueOf(saxParseException.getSystemId()) ); - n.addExtraDescription("line" , String.valueOf(saxParseException.getLineNumber()) ); - n.addExtraDescription("column" , String.valueOf(saxParseException.getColumnNumber())); - } else if (rootCauseThrowable instanceof TransformerException) { - TransformerException transformerException = (TransformerException) rootCauseThrowable; - SourceLocator sourceLocator = transformerException.getLocator(); - n.setMessage ( transformerException.getMessage()); - - if( null != sourceLocator ) - { - n.addExtraDescription("location", String.valueOf(sourceLocator.getSystemId()) ); - n.addExtraDescription("line" , String.valueOf(sourceLocator.getLineNumber()) ); - n.addExtraDescription("column" , String.valueOf(sourceLocator.getColumnNumber()) ); + /** + * Builds a Notifying object (SimpleNotifyingBean in this case) + * that tries to explain what the Object o can reveal. + * @param sender who sent this Object. + * @param o the object to use when building the SimpleNotifyingBean + * @return the Notifying Object that was build + * @see org.apache.cocoon.components.notification.Notifying + */ + public Notifying build (Object sender, Object o) { + if (o instanceof Notifying) { + return (Notifying) o; + } else if (o instanceof Throwable) { + Throwable t = (Throwable) o; + SimpleNotifyingBean n = new SimpleNotifyingBean(sender); + n.setType(Notifying.ERROR_NOTIFICATION); + n.setTitle("An error occurred"); + if (t != null) { + n.setSource(t.getClass().getName()); + + Throwable rootCauseThrowable = getRootCause(t); + n.addExtraDescription(Notifying.EXTRA_CAUSE, rootCauseThrowable.toString()); + + if (rootCauseThrowable instanceof SAXParseException) { + SAXParseException saxParseException = (SAXParseException) rootCauseThrowable; + n.setMessage ( saxParseException.getMessage() ); + n.addExtraDescription(Notifying.EXTRA_LOCATION, + String.valueOf(saxParseException.getSystemId())); + n.addExtraDescription(Notifying.EXTRA_LINE, + String.valueOf(saxParseException.getLineNumber())); + n.addExtraDescription(Notifying.EXTRA_COLUMN, + String.valueOf(saxParseException.getColumnNumber())); + } else if (rootCauseThrowable instanceof TransformerException) { + TransformerException transformerException = (TransformerException) rootCauseThrowable; + SourceLocator sourceLocator = transformerException.getLocator(); + n.setMessage ( transformerException.getMessage() ); + + if (null != sourceLocator) { + n.addExtraDescription(Notifying.EXTRA_LOCATION, + String.valueOf(sourceLocator.getSystemId())); + n.addExtraDescription(Notifying.EXTRA_LINE, + String.valueOf(sourceLocator.getLineNumber())); + n.addExtraDescription(Notifying.EXTRA_COLUMN, + String.valueOf(sourceLocator.getColumnNumber())); + } + } else { + n.setMessage(t.getMessage()); + } + + n.setDescription(t.toString()); + + // Get the stacktrace: if the exception is a SAXException, + // the stacktrace of the embedded exception is used as the + // SAXException does not append it automatically + Throwable stackTraceException; + if (t instanceof SAXException && ((SAXException) t).getException() != null) { + stackTraceException = ((SAXException) t).getException(); + } else { + stackTraceException = t; + } + // org.apache.avalon.framework.ExceptionUtil.captureStackTrace(); + StringWriter sw = new StringWriter(); + stackTraceException.printStackTrace(new PrintWriter(sw)); + n.addExtraDescription(Notifying.EXTRA_STACKTRACE, sw.toString()); + // Add nested throwables description + sw = new StringWriter(); + appendCauses(new PrintWriter(sw), stackTraceException); + String causes = sw.toString(); + if (causes != null && causes.length() != 0) { + n.addExtraDescription(Notifying.EXTRA_FULLTRACE, causes); + } } + return n; } else { - n.setMessage(t.getMessage()); + SimpleNotifyingBean n = new SimpleNotifyingBean(sender); + n.setType(Notifying.UNKNOWN_NOTIFICATION); + n.setTitle("Object notification"); + n.setSource(o.getClass().getName()); + n.setMessage(o.toString()); + n.setDescription("No details available."); + return n; } - - n.setDescription(t.toString()); - - // get the stacktrace: if the exception is a SAXException, - // the stacktrace of the embedded exception is used as the - // SAXException does not append it automatically - Throwable stackTraceException; - if (t instanceof SAXException && ((SAXException) t).getException() != null) { - stackTraceException = ((SAXException) t).getException(); - } else { - stackTraceException = t; - } - //org.apache.avalon.framework.ExceptionUtil.captureStackTrace(); - StringWriter sw = new StringWriter(); - stackTraceException.printStackTrace(new PrintWriter(sw)); - n.addExtraDescription("stacktrace", sw.toString()); - // Add nested throwables description - sw = new StringWriter(); - appendCauses(new PrintWriter(sw), stackTraceException); - String causes = sw.toString(); - if (causes != null && causes.length() != 0) { - n.addExtraDescription("full exception chain stacktrace", causes); - } - } - return n; - } else { - SimpleNotifyingBean n = new SimpleNotifyingBean(sender); - n.setType("unknown"); - n.setTitle("Object notification"); - n.setSource(o.getClass().getName()); - n.setMessage(o.toString()); - n.setDescription("No details available."); - return n; } - } - /** Builds a Notifying object (SimpleNotifyingBean in this case) - * that explains a notification. - * @param sender who sent this Object. - * @param o the object to use when building the SimpleNotifyingBean - * @param type see the Notifying apidocs - * @param title see the Notifying apidocs - * @param source see the Notifying apidocs - * @param message see the Notifying apidocs - * @param description see the Notifying apidocs - * @param extra see the Notifying apidocs - * @return the Notifying Object that was build - * @see org.apache.cocoon.components.notification.Notifying - */ - public Notifying build(Object sender, Object o, String type, String title, - String source, String message, String description, Map extra) { - //NKB Cast here is secure, the method is of this class - SimpleNotifyingBean n = (SimpleNotifyingBean) build (sender, o); - - if (type != null) - n.setType(type); - if (title != null) - n.setTitle(title); - if (source != null) - n.setSource(source); - if (message != null) - n.setMessage(message); - if (description != null) - n.setDescription(description); - if (extra != null) - n.replaceExtraDescriptions(extra); - - return n; - } - - - /** - * Print recursively all nested causes of a Throwable in a PrintWriter. - */ - private static void appendCauses (PrintWriter out, Throwable t) { - Throwable cause = null; - if (t instanceof CascadingThrowable) { - cause = ((CascadingThrowable) t).getCause(); - } else if (t instanceof SAXException) { - cause = ((SAXException) t).getException(); - } else if (t instanceof java.sql.SQLException) { - cause = ((java.sql.SQLException) t).getNextException(); - } - if (cause != null) { - out.print("Original exception : "); - cause.printStackTrace(out); - out.println(); - // Recurse - appendCauses(out, cause); + /** + * Builds a Notifying object (SimpleNotifyingBean in this case) + * that explains a notification. + * @param sender who sent this Object. + * @param o the object to use when building the SimpleNotifyingBean + * @param type see the Notifying apidocs + * @param title see the Notifying apidocs + * @param source see the Notifying apidocs + * @param message see the Notifying apidocs + * @param description see the Notifying apidocs + * @param extra see the Notifying apidocs + * @return the Notifying Object that was build + * @see org.apache.cocoon.components.notification.Notifying + */ + public Notifying build(Object sender, Object o, String type, String title, + String source, String message, String description, Map extra) { + // NKB Cast here is secure, the method is of this class + SimpleNotifyingBean n = (SimpleNotifyingBean) build (sender, o); + + if (type != null) + n.setType(type); + if (title != null) + n.setTitle(title); + if (source != null) + n.setSource(source); + if (message != null) + n.setMessage(message); + if (description != null) + n.setDescription(description); + if (extra != null) + n.addExtraDescriptions(extra); + + return n; } - } - /** - * Get root Exception. - */ - public static Throwable getRootCause (Throwable t) { - Throwable cause = null; - if (t instanceof CascadingThrowable) { - cause = ((CascadingThrowable) t).getCause(); - } else if (t instanceof SAXException) { - cause = ((SAXException) t).getException(); - } else if (t instanceof java.sql.SQLException) { - cause = ((java.sql.SQLException) t).getNextException(); + + /** + * Print recursively all nested causes of a Throwable in a PrintWriter. + */ + private static void appendCauses (PrintWriter out, Throwable t) { + Throwable cause = null; + if (t instanceof CascadingThrowable) { + cause = ((CascadingThrowable) t).getCause(); + } else if (t instanceof SAXException) { + cause = ((SAXException) t).getException(); + } else if (t instanceof java.sql.SQLException) { + cause = ((java.sql.SQLException) t).getNextException(); + } + if (cause != null) { + out.print("Original exception : "); + cause.printStackTrace(out); + out.println(); + // Recurse + appendCauses(out, cause); + } } - if (cause == null) { - return t; - } else { - // Recurse - return getRootCause(cause); + + /** + * Get root Exception. + */ + public static Throwable getRootCause (Throwable t) { + Throwable cause = null; + if (t instanceof CascadingThrowable) { + cause = ((CascadingThrowable) t).getCause(); + } else if (t instanceof SAXException) { + cause = ((SAXException) t).getException(); + } else if (t instanceof java.sql.SQLException) { + cause = ((java.sql.SQLException) t).getNextException(); + } + if (cause == null) { + return t; + } else { + // Recurse + return getRootCause(cause); + } } - } } - ---------------------------------------------------------------------- In case of troubles, e-mail: webmaster@xml.apache.org To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org For additional commands, e-mail: cocoon-cvs-help@xml.apache.org