Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 253692 - Eclipse-BuddyPolicy content assist is broken and/or doesn't work as expected
Summary: Eclipse-BuddyPolicy content assist is broken and/or doesn't work as expected
Status: RESOLVED FIXED
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.4.1   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.5 M4   Edit
Assignee: Chris Aniszczyk CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-04 08:50 EST by Benjamin Cabé CLA
Modified: 2008-11-04 10:22 EST (History)
1 user (show)

See Also:


Attachments
patch against 3_4_maintenance branch (3.04 KB, patch)
2008-11-04 08:58 EST, Benjamin Cabé CLA
caniszczyk: iplog+
Details | Diff
mylyn/context/zip (1.98 KB, application/octet-stream)
2008-11-04 10:22 EST, Chris Aniszczyk CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Benjamin Cabé CLA 2008-11-04 08:50:50 EST
If you try to use content assist for an Eclipse-BuddyPolicy (i.e. type "Eclipse-BuddyPolicy: " CTRL+SPACE, you have the stack trace below.
If you assist the... content assist, starting to type the beginning of a valid value, (e.g. "ex" for "ext"), CTRL+SPACE then works.
But... if you use a comma to enter multiple values: no CTRL+SPACE anymore :( (note that if you use ';' as a separator it's OK... :-/)

java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(Unknown Source)
at org.eclipse.pde.internal.ui.editor.contentassist.ManifestContentAssistProcessor.handleAttrsAndDirectives(ManifestContentAssistProcessor.java:637)
at org.eclipse.pde.internal.ui.editor.contentassist.ManifestContentAssistProcessor.handleBuddyPolicyCompletion(ManifestContentAssistProcessor.java:571)
at org.eclipse.pde.internal.ui.editor.contentassist.ManifestContentAssistProcessor.computeValue(ManifestContentAssistProcessor.java:230)
at org.eclipse.pde.internal.ui.editor.contentassist.ManifestContentAssistProcessor.computeCompletionProposals(ManifestContentAssistProcessor.java:162)
at org.eclipse.pde.internal.ui.editor.contentassist.ManifestContentAssistProcessor.computeCompletionProposals(ManifestContentAssistProcessor.java:99)
at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1836)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:553)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:550)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:485)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:479)
at org.eclipse.jface.text.contentassist.ContentAssistant.showPossibleCompletions(ContentAssistant.java:1664)
at org.eclipse.jface.text.source.SourceViewer.doOperation(SourceViewer.java:807)
at org.eclipse.jface.text.source.projection.ProjectionViewer.doOperation(ProjectionViewer.java:1423)
at org.eclipse.pde.internal.ui.editor.PDEProjectionViewer.doOperation(PDEProjectionViewer.java:64)
at org.eclipse.ui.texteditor.ContentAssistAction$1.run(ContentAssistAction.java:82)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.texteditor.ContentAssistAction.run(ContentAssistAction.java:80)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:471)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:822)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:880)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:569)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:511)
at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:126)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1184)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1002)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1040)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1036)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1352)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3894)
at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:341)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3787)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:337)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4528)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2370)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3420)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
Comment 1 Benjamin Cabé CLA 2008-11-04 08:55:16 EST
Note that content assist suggests you any valid value for the BuddyPolicy header, instead of suggesting any "not yet entered" value ... 
The patch to come corrects the NoSuchElement exception, makes the content assist happy with commas, and also suggest only not-yet entered values
Comment 2 Benjamin Cabé CLA 2008-11-04 08:58:44 EST
Created attachment 116934 [details]
patch against 3_4_maintenance branch
Comment 3 Chris Aniszczyk CLA 2008-11-04 10:22:47 EST
done.

> 20091104

Thanks Benjamin. I'm not going to consider this for 3.4.2 now as this is the first time I've seen it reported.
Comment 4 Chris Aniszczyk CLA 2008-11-04 10:22:50 EST
Created attachment 116943 [details]
mylyn/context/zip