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
This commit is contained in:
Mark Rogers
2010-03-19 14:59:31 +00:00
parent c2ddf8dc14
commit 0f0d389a5c
2 changed files with 46 additions and 17 deletions

View File

@@ -187,11 +187,19 @@ public class ViewParser implements Parser
} }
catch(Exception e) 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); throw new ImporterException("Failed to import package at line " + xpp.getLineNumber() + "; column " + xpp.getColumnNumber() + " due to error: " + e.getMessage(), e);
} }
} }
catch(XmlPullParserException e) catch(XmlPullParserException e)
{ {
if(logger.isDebugEnabled())
{
logger.debug("Failed to parse view", e);
}
throw new ImporterException("Failed to parse view", e); throw new ImporterException("Failed to parse view", e);
} }
} }

View File

@@ -114,6 +114,11 @@ public abstract class Tool
System.out.println(msg); System.out.println(msg);
} }
/**
* Handle Error Message
*
* @param e exception
*/
/** /**
* Handle Error Message * Handle Error Message
* *
@@ -121,33 +126,49 @@ public abstract class Tool
*/ */
protected int handleError(Throwable e) protected int handleError(Throwable e)
{ {
if (e instanceof ToolArgumentException) if (e instanceof ToolArgumentException)
{ {
logError(e.getMessage()); logError(e.getMessage());
logError(""); logError("");
displayHelp(); displayHelp();
} }
else if (e instanceof ToolException) else if (e instanceof ToolException)
{ {
logError(e.getMessage()); if (e.getCause() != null)
} {
else logError(e.getMessage() + " caused by: " + e.getCause().getMessage());
{ }
logError("The following error has occurred:"); else
logError(e.getMessage()); {
logError(e.getMessage());
}
// If we are being verbose then show the stack trace as well.
if (toolContext != null && toolContext.isVerbose()) if (toolContext != null && toolContext.isVerbose())
{ {
StringWriter stringWriter = new StringWriter(); StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter); PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter); e.printStackTrace(printWriter);
logError(stringWriter.toString()); 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 generic error code
return -1; return -1;
} }
/** /**
* Exit Tool * Exit Tool
* *