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)
{
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);
}
}

View File

@@ -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
*