diff options
4 files changed, 41 insertions, 12 deletions
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/DuplicateDetetionTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/DuplicateDetetionTest.java index 9dc81e85b..5f18faad8 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/DuplicateDetetionTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/DuplicateDetetionTest.java @@ -51,8 +51,8 @@ public class DuplicateDetetionTest extends TestCase { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); NewBugEditorInput input = new NewBugEditorInput(repository, model); TaskUiUtil.openEditor(input, BugzillaUiPlugin.NEW_BUG_EDITOR_ID, page); - - MylarTaskEditor taskEditor = (MylarTaskEditor) page.getActiveEditor(); + + MylarTaskEditor taskEditor = (MylarTaskEditor) page.getActiveEditor(); NewBugEditor editor = (NewBugEditor) taskEditor.getActivePageInstance(); assertTrue(editor.searchForDuplicates()); @@ -70,11 +70,32 @@ public class DuplicateDetetionTest extends TestCase { NewBugEditorInput input = new NewBugEditorInput(repository, model); TaskUiUtil.openEditor(input, BugzillaUiPlugin.NEW_BUG_EDITOR_ID, page); - MylarTaskEditor taskEditor = (MylarTaskEditor) page.getActiveEditor(); + MylarTaskEditor taskEditor = (MylarTaskEditor) page.getActiveEditor(); NewBugEditor editor = (NewBugEditor) taskEditor.getActivePageInstance(); assertNull(editor.getStackTraceFromDescription()); editor.markDirty(false); editor.close(); } + + public void testStackTraceWithAppendedText() throws Exception { + + String stackTrace = "java.lang.NullPointerException\nat jeff.testing.stack.trace.functionality(jeff.java:481)"; + String extraText = "\nExtra text that isnt' part of the stack trace java:"; + + NewBugzillaReport model = new NewBugzillaReport(repository.getUrl(), TasksUiPlugin.getDefault() + .getOfflineReportsFile().getNextOfflineBugId()); + model.setNewComment(extraText + "\n" + stackTrace + "\n"); + model.setHasLocalChanges(true); + IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + NewBugEditorInput input = new NewBugEditorInput(repository, model); + TaskUiUtil.openEditor(input, BugzillaUiPlugin.NEW_BUG_EDITOR_ID, page); + + MylarTaskEditor taskEditor = (MylarTaskEditor) page.getActiveEditor(); + NewBugEditor editor = (NewBugEditor) taskEditor.getActivePageInstance(); + assertEquals(stackTrace, editor.getStackTraceFromDescription().trim()); + + editor.markDirty(false); + editor.close(); + } } diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/ExistingBugEditor.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/ExistingBugEditor.java index 7caa5731e..a8106a2f6 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/ExistingBugEditor.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/ExistingBugEditor.java @@ -171,7 +171,11 @@ public class ExistingBugEditor extends AbstractRepositoryTaskEditor { @Override protected void addRadioButtons(Composite buttonComposite) { addSelfToCC(buttonComposite); - addAttachContextButton(buttonComposite); + ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( + AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + if (task != null) { + addAttachContextButton(buttonComposite, task); + } FormToolkit toolkit = new FormToolkit(buttonComposite.getDisplay()); int i = 0; Button selected = null; @@ -263,9 +267,7 @@ public class ExistingBugEditor extends AbstractRepositoryTaskEditor { toolkit.paintBordersFor(buttonComposite); } - private void addAttachContextButton(Composite buttonComposite) { - ITask task = TasksUiPlugin.getTaskListManager().getTaskList().getTask( - AbstractRepositoryTask.getHandle(repository.getUrl(), taskData.getId())); + private void addAttachContextButton(Composite buttonComposite, ITask task) { File contextFile = ContextCorePlugin.getContextManager().getFileForContext(task.getHandleIdentifier()); FormToolkit toolkit = new FormToolkit(buttonComposite.getDisplay()); diff --git a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/NewBugEditor.java b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/NewBugEditor.java index 70161dcdc..af697582b 100644 --- a/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/NewBugEditor.java +++ b/org.eclipse.mylyn.bugzilla.ui/src/org/eclipse/mylyn/internal/bugzilla/ui/editor/NewBugEditor.java @@ -238,7 +238,7 @@ public class NewBugEditor extends AbstractRepositoryTaskEditor { boolean hit = false; while (tok.hasMoreTokens() && stackBuffer.length() == 0) { String line = tok.nextToken().trim(); - while (line.indexOf("at ") < 0 && line.indexOf(".java:") < 0 && tok.hasMoreTokens()) { + while ((line.indexOf("at ") < 0 || line.indexOf(".java:") < 0) && tok.hasMoreTokens()) { prevLine = line; line = tok.nextToken(); hit = true; @@ -247,10 +247,15 @@ public class NewBugEditor extends AbstractRepositoryTaskEditor { if (!hit) { return null; } - stackBuffer.append(prevLine + "\n" + line + "\n"); - while (line.indexOf(".java:") > 0 && line.indexOf("at ") == 0 && tok.hasMoreTokens()) { - line = tok.nextToken(); + stackBuffer.append(prevLine + "\n"); + while (line.indexOf(".java:") > 0 && line.indexOf("at ") == 0) { stackBuffer.append(line + "\n"); + if (tok.hasMoreTokens()) { + line = tok.nextToken(); + } + else { + line = ""; + } } } if (stackBuffer.length() > 0) { diff --git a/org.eclipse.mylyn.help.ui/doc/new.html b/org.eclipse.mylyn.help.ui/doc/new.html index d5cd21e2d..ca251788a 100644 --- a/org.eclipse.mylyn.help.ui/doc/new.html +++ b/org.eclipse.mylyn.help.ui/doc/new.html @@ -52,7 +52,8 @@ Mylar 0.3.x</a></b></li> <li>Drag and drop of contexts and tasks</li> <li>Report bugs directly from Error Log view, works via clipboard for connectors without new task editor</li> - <li>Duplicate detection</li> + <li>Duplicate detection, button is in place of Create button to encourage + always checking before submission</li> <li>Hyperlinks in task editor box, better editing support (edit menu, context menu, actions work), attach context inlined</li> <li>Apply Mylar is automated for navigator views (see Context prefs page)</li> |