Community
Participate
Working Groups
Once the fix for Bug 314972 is in and context (ctrl+shift+space) assist is working again in HTML and JSP editors duplicate context information is provided by both the core structured content assist framework and org.eclipse.jst.jsf.facelet.ui.internal.contentassist.XHTMLContentAssistProcessor. The new (as of WTP 3.2 M6) Structur5edContentAssistProcessor that now uses a new set of extension points still allows for 'legacy' content assist extensions through the editor configuration extension point for backwards compatibility. It is through this legacy layer that XHTMLContentAssistProcessor is providing its suggestions for both content assist and context assist. But it would seem the context assist XHTMLContentAssistProcessor is providing is identical to the context assist that is already provided by the SSE content assist framework. This duplication causes a context assist list to appear rather then just a context assist dialog when context assist is invoked. The user is then forced to chose between seemingly (and in reality) identical options to then see the desired context assist dialog. If the XHTMLContentAssistProcessor ceases to provide this duplicate context information then a list will no longer need to be shown and the context dialog will be shown promptly. To be more specific the duplicated context is org.eclipse.wst.xml.ui.internal.contentassist.AttributeContextInformation.
Using the RC3 build, I don't see the issue in both the HTML and JSP file in the WPE Source editor. Additional steps would be useful.
As I stated in the description this is not reproducible without the fix for Bug 314972 applied. Without the patch for Bug 314972 I would expect that you are seeing NPEs as the description of that bug states.
(In reply to comment #2) > As I stated in the description this is not reproducible without the fix for Bug > 314972 applied. Without the patch for Bug 314972 I would expect that you are > seeing NPEs as the description of that bug states. We are seeing this one but it's clear that it is connected. Do you have stack trace that shows the NPE you are talking about? java.lang.ClassCastException: java.lang.String at org.eclipse.wst.html.core.internal.htmlcss.HTMLDocumentAdapter.notifyChanged(HTMLDocumentAdapter.java:255) at org.eclipse.wst.sse.core.internal.provisional.AbstractNotifier.notify(AbstractNotifier.java:202) at org.eclipse.wst.xml.core.internal.document.AttrImpl.setName(AttrImpl.java:672) at org.eclipse.wst.xml.core.internal.document.XMLModelParser.changeAttrName(XMLModelParser.java:159) at org.eclipse.wst.xml.core.internal.document.XMLModelParser.changeRegion(XMLModelParser.java:326) at org.eclipse.wst.xml.core.internal.document.DOMModelImpl.regionChanged(DOMModelImpl.java:725) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument._fireEvent(BasicStructuredDocument.java:542) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.fireStructuredDocumentEvent(BasicStructuredDocument.java:1180) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1964) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2419) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2404) at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.access$2(JobSafeStructuredDocument.java:1) at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument$3.run(JobSafeStructuredDocument.java:141) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.wst.sse.ui.EditorExecutionContext.execute(EditorExecutionContext.java:149) at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replaceText(JobSafeStructuredDocument.java:144) at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replace(BasicStructuredDocument.java:2364) at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.access$0(JobSafeStructuredDocument.java:1) at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument$1.run(JobSafeStructuredDocument.java:103) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.wst.sse.ui.EditorExecutionContext.execute(EditorExecutionContext.java:149) at org.eclipse.wst.sse.core.internal.text.JobSafeStructuredDocument.replace(JobSafeStructuredDocument.java:106) at org.eclipse.jface.text.projection.ProjectionTextStore.replace(ProjectionTextStore.java:111) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1184) at org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1210) at org.eclipse.jface.text.projection.ProjectionDocument.replace(ProjectionDocument.java:629) at org.eclipse.jface.text.DefaultDocumentAdapter.replaceTextRange(DefaultDocumentAdapter.java:248) at org.eclipse.swt.custom.StyledText.modifyContent(StyledText.java:7159) at org.eclipse.swt.custom.StyledText.sendKeyEvent(StyledText.java:7966) at org.eclipse.swt.custom.StyledText.doContent(StyledText.java:2456) at org.eclipse.swt.custom.StyledText.handleKey(StyledText.java:5919) at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5949) at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5643) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1076) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1102) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1098) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1507) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4267) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4159) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4873) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2459) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3655) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
I do not know what that exception is you are seeing. But as for this bug I am canceling. I turns out that the duplicate context information that XHTMLContentAssistProcessor is providing is actually coming from its super class AbstractContentAssistPrcoessor (that is now deprecated). So rather then having you and any other adopter still using this deprecated class have to override the #computeContextInformation method to return nothing we are going to change AbstractContentAssistPrcoessor to return nothing. Thanks for the work you put into this and apologies for the wild goose chase.