From 0f0d389a5c1b26799a420065f5fda74493a6692d Mon Sep 17 00:00:00 2001 From: Mark Rogers Date: Fri, 19 Mar 2010 14:59:31 +0000 Subject: [PATCH] ALF-2048 - Import Tool essentially swallows exceptions - now the verbose option will print the stack trace for ToolException git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@19403 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/importer/view/ViewParser.java | 8 +++ source/java/org/alfresco/tools/Tool.java | 55 +++++++++++++------ 2 files changed, 46 insertions(+), 17 deletions(-) diff --git a/source/java/org/alfresco/repo/importer/view/ViewParser.java b/source/java/org/alfresco/repo/importer/view/ViewParser.java index 22e4ba9cdf..872698c01d 100644 --- a/source/java/org/alfresco/repo/importer/view/ViewParser.java +++ b/source/java/org/alfresco/repo/importer/view/ViewParser.java @@ -187,11 +187,19 @@ public class ViewParser implements Parser } catch(Exception e) { + if(logger.isDebugEnabled()) + { + logger.debug("Failed to import package at line " + xpp.getLineNumber() + "; column " + xpp.getColumnNumber() + " due to error: ", e); + } throw new ImporterException("Failed to import package at line " + xpp.getLineNumber() + "; column " + xpp.getColumnNumber() + " due to error: " + e.getMessage(), e); } } catch(XmlPullParserException e) { + if(logger.isDebugEnabled()) + { + logger.debug("Failed to parse view", e); + } throw new ImporterException("Failed to parse view", e); } } diff --git a/source/java/org/alfresco/tools/Tool.java b/source/java/org/alfresco/tools/Tool.java index 67ff545c8a..a79504234a 100644 --- a/source/java/org/alfresco/tools/Tool.java +++ b/source/java/org/alfresco/tools/Tool.java @@ -114,6 +114,11 @@ public abstract class Tool System.out.println(msg); } + /** + * Handle Error Message + * + * @param e exception + */ /** * Handle Error Message * @@ -121,33 +126,49 @@ public abstract class Tool */ protected int handleError(Throwable e) { - if (e instanceof ToolArgumentException) - { + if (e instanceof ToolArgumentException) + { logError(e.getMessage()); logError(""); displayHelp(); - } - else if (e instanceof ToolException) - { - logError(e.getMessage()); - } - else - { - logError("The following error has occurred:"); - logError(e.getMessage()); + } + else if (e instanceof ToolException) + { + if (e.getCause() != null) + { + logError(e.getMessage() + " caused by: " + e.getCause().getMessage()); + } + else + { + logError(e.getMessage()); + } + + // If we are being verbose then show the stack trace as well. if (toolContext != null && toolContext.isVerbose()) { - StringWriter stringWriter = new StringWriter(); - PrintWriter printWriter = new PrintWriter(stringWriter); + StringWriter stringWriter = new StringWriter(); + PrintWriter printWriter = new PrintWriter(stringWriter); e.printStackTrace(printWriter); logError(stringWriter.toString()); } - } - + } + else + { + logError("The following error has occurred:" + e.getMessage()); + + if (toolContext != null && toolContext.isVerbose()) + { + StringWriter stringWriter = new StringWriter(); + PrintWriter printWriter = new PrintWriter(stringWriter); + e.printStackTrace(printWriter); + logError(stringWriter.toString()); + } + } + // return generic error code - return -1; + return -1; } - + /** * Exit Tool *