diff options
author | spingel | 2009-11-20 21:15:48 +0000 |
---|---|---|
committer | spingel | 2009-11-20 21:15:48 +0000 |
commit | 4e31fee20e706aabb095ec0628d6c6bbeef3eb12 (patch) | |
tree | d880fcab7ee793f5e46dbccdae243530f769704e /org.eclipse.mylyn.tasks.bugs | |
parent | bed92deb293917c1c7f389eb66a6d61c0e14cf00 (diff) | |
download | org.eclipse.mylyn.tasks-4e31fee20e706aabb095ec0628d6c6bbeef3eb12.tar.gz org.eclipse.mylyn.tasks-4e31fee20e706aabb095ec0628d6c6bbeef3eb12.tar.xz org.eclipse.mylyn.tasks-4e31fee20e706aabb095ec0628d6c6bbeef3eb12.zip |
RESOLVED - bug 279267: [regression] reporting structured errors should take child items into account
https://bugs.eclipse.org/bugs/show_bug.cgi?id=279267
Diffstat (limited to 'org.eclipse.mylyn.tasks.bugs')
2 files changed, 24 insertions, 58 deletions
diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultSupportHandler.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultSupportHandler.java index 910a5b30b..539aa430d 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultSupportHandler.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultSupportHandler.java @@ -188,15 +188,7 @@ public class DefaultSupportHandler extends AbstractSupportHandler { sb.append(Messages.DefaultSupportHandler_Step_1); sb.append(Messages.DefaultSupportHandler_Step_2); sb.append(Messages.DefaultSupportHandler_Step_3); - appendErrorDetails(sb, errorLogStatus, errorLogStatus.getDate()); - if (errorLogStatus.getLogSessionData() != null) { - sb.append(Messages.DefaultTaskContributor_SESSION_DATA); - sb.append(errorLogStatus.getLogSessionData()); - } - if (errorLogStatus.getStack() != null) { - sb.append(Messages.DefaultTaskContributor_EXCEPTION_STACK_TRACE); - sb.append(errorLogStatus.getStack()); - } + appendStatus(errorLogStatus, sb, true); return sb.toString(); } else { StringBuilder sb = new StringBuilder(); @@ -212,6 +204,29 @@ public class DefaultSupportHandler extends AbstractSupportHandler { return null; } + private void appendStatus(IStatus status, StringBuilder sb, boolean includeSessionData) { + Date date = (status instanceof ErrorLogStatus) ? ((ErrorLogStatus) status).getDate() : null; + appendErrorDetails(sb, status, date); + if (status instanceof ErrorLogStatus) { + ErrorLogStatus errorStatus = (ErrorLogStatus) status; + if (includeSessionData && errorStatus.getLogSessionData() != null) { + sb.append(Messages.DefaultTaskContributor_SESSION_DATA); + sb.append(errorStatus.getLogSessionData()); + } + if (errorStatus.getStack() != null) { + sb.append(Messages.DefaultTaskContributor_EXCEPTION_STACK_TRACE); + sb.append(errorStatus.getStack()); + } + } + + IStatus[] children = status.getChildren(); + if (children != null) { + for (IStatus child : children) { + appendStatus(child, sb, false); + } + } + } + private String getSeverityText(int severity) { switch (severity) { case IStatus.ERROR: diff --git a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java index 541ea3d5a..57fa79e26 100644 --- a/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java +++ b/org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java @@ -35,57 +35,8 @@ public class NewTaskFromErrorAction implements IObjectActionDelegate { private LogEntry entry; - /** - * Fills a {@link StringBuilder} with {@link LogEntry} information, optionally including subentries too - * - * @param entry - * The {@link LogEntry} who provides the information - * @param sb - * An {@link StringBuilder} to be filled with - * @param includeChildren - * Indicates if it should include subentries, if the {@link LogEntry} have any - */ - // FIXME 3.4 re-enable (bug 279267) - @SuppressWarnings("unused") - private void buildDescriptionFromLogEntry(LogEntry entry, StringBuilder sb, boolean includeChildren) { - sb.append(Messages.NewTaskFromErrorAction_ERROR_LOG_DATE); - sb.append(entry.getDate()); - sb.append(Messages.NewTaskFromErrorAction_MESSGAE); - sb.append(entry.getMessage()); - sb.append(Messages.NewTaskFromErrorAction_SEVERITY + entry.getSeverityText()); - sb.append(Messages.NewTaskFromErrorAction_PLUGIN_ID); - sb.append(entry.getPluginId()); - sb.append(Messages.NewTaskFromErrorAction_STACK_TRACE); - if (entry.getStack() == null) { - sb.append(Messages.NewTaskFromErrorAction_no_stack_trace_available); - } else { - sb.append(entry.getStack()); - } - - if (includeChildren && entry.hasChildren()) { - Object[] children = entry.getChildren(null); - for (Object child : children) { - if (child instanceof LogEntry) { - buildDescriptionFromLogEntry((LogEntry) child, sb, includeChildren); - } - } - } - } - private void createTask(LogEntry entry) { - // FIXME reenable -// Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); -// boolean includeChildren = false; -// -// if (entry.hasChildren() -// && MessageDialog.openQuestion(shell, "Report Bug", "Include children of this entry in the report?")) { -// includeChildren = true; -// } -// StringBuilder sb = new StringBuilder(); -// buildDescriptionFromLogEntry(entry, sb, true); - ErrorLogStatus status = createStatus(entry); - new ErrorReporterManager().fail(status); } |