Uploaded image for project: 'ZK Studio'
  1. ZK Studio
  2. ZKSTUDIO-39

content assist at "apply" attribute cause unexpected behavior

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • 2.0.0
    • 1.0.2
    • ZUL Editor
    • None
    • Eclipse 3.7, XUbuntu 12.04 64Bits, OpenJDK 1.6

      1. Create a ZUL and input code as below image. move cursor at apply value and after a single space. (see image)

      2. Trigger content assist and select Composer - org.zkoss.zk.ui.util

      3. The value will become " til.Composer". at this time, save such ZUL will popup a error message said "Save Failed Program Error: modelStateChanging was less than zero".
      If using debug mode, host Eclipse console will show stack trace:

      java.lang.IllegalStateException: Program Error: modelStateChanging was less than zero
      	at org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.internalModelChanged(AbstractStructuredModel.java:825)
      	at org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.changedModel(AbstractStructuredModel.java:361)
      	at org.eclipse.wst.xml.core.internal.document.DOMModelImpl.changedModel(DOMModelImpl.java:171)
      	at org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel$DocumentToModelNotifier.noChange(AbstractStructuredModel.java:139)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument._fireEvent(BasicStructuredDocument.java:513)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.fireStructuredDocumentEvent(BasicStructuredDocument.java:1172)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1959)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2423)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2408)
      	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:2368)
      	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.wst.sse.ui.internal.contentassist.CustomCompletionProposal.apply(CustomCompletionProposal.java:161)
      	at org.zkoss.eclipse.editor.wst.contentassist.ZulCompletionProposal.apply(ZulCompletionProposal.java:81)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:930)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertSelectedProposalWithMask(CompletionProposalPopup.java:881)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.verifyKey(CompletionProposalPopup.java:1307)
      	at org.eclipse.jface.text.contentassist.ContentAssistant$InternalListener.verifyKey(ContentAssistant.java:807)
      	at org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:491)
      	at org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061)
      	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5936)
      	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5635)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
      	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1294)
      	at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:730)
      	at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3019)
      	at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734)
      	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743)
      	at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016)
      	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408)
      	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
      	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422)
      	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
      	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
      	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
      	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
      	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
      	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
      	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
      	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
      	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
      	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
      	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:344)
      	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:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:616)
      	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
      	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
      	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
      	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
      
      !ENTRY org.eclipse.wst.sse.core 4 4 2012-12-13 10:39:52.714
      !MESSAGE Program Error: invalid structured document event
      
      !ENTRY org.eclipse.wst.sse.core 4 2 2012-12-13 10:39:52.715
      !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.wst.sse.core".
      !STACK 0
      org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
      	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110)
      	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:96)
      	at org.eclipse.jface.text.DocumentEvent.<init>(DocumentEvent.java:61)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.internalReplaceText(BasicStructuredDocument.java:1911)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2423)
      	at org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument.replaceText(BasicStructuredDocument.java:2408)
      	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:2368)
      	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.wst.sse.ui.internal.contentassist.CustomCompletionProposal.apply(CustomCompletionProposal.java:161)
      	at org.zkoss.eclipse.editor.wst.contentassist.ZulCompletionProposal.apply(ZulCompletionProposal.java:81)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:930)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertSelectedProposalWithMask(CompletionProposalPopup.java:881)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.verifyKey(CompletionProposalPopup.java:1307)
      	at org.eclipse.jface.text.contentassist.ContentAssistant$InternalListener.verifyKey(ContentAssistant.java:807)
      	at org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:491)
      	at org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061)
      	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5936)
      	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5635)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
      	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1294)
      	at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:730)
      	at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3019)
      	at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734)
      	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743)
      	at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016)
      	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408)
      	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
      	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422)
      	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
      	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
      	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
      	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
      	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
      	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
      	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
      	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
      	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
      	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
      	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:344)
      	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:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:616)
      	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
      	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
      	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
      	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
      
      !ENTRY org.eclipse.ui 4 0 2012-12-13 10:39:52.719
      !MESSAGE Unhandled event loop exception
      !STACK 0
      org.eclipse.core.runtime.AssertionFailedException: assertion failed: 
      	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:110)
      	at org.eclipse.core.runtime.Assert.isTrue(Assert.java:96)
      	at org.eclipse.jface.text.contentassist.CompletionProposal.<init>(CompletionProposal.java:71)
      	at org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal.getSelection(CustomCompletionProposal.java:244)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertProposal(CompletionProposalPopup.java:938)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.insertSelectedProposalWithMask(CompletionProposalPopup.java:881)
      	at org.eclipse.jface.text.contentassist.CompletionProposalPopup.verifyKey(CompletionProposalPopup.java:1307)
      	at org.eclipse.jface.text.contentassist.ContentAssistant$InternalListener.verifyKey(ContentAssistant.java:807)
      	at org.eclipse.jface.text.TextViewer$VerifyKeyListenersManager.verifyKey(TextViewer.java:491)
      	at org.eclipse.swt.custom.StyledTextListener.handleEvent(StyledTextListener.java:65)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
      	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061)
      	at org.eclipse.swt.custom.StyledText.handleKeyDown(StyledText.java:5936)
      	at org.eclipse.swt.custom.StyledText$7.handleEvent(StyledText.java:5635)
      	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282)
      	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267)
      	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1294)
      	at org.eclipse.swt.widgets.Widget.gtk_key_press_event(Widget.java:730)
      	at org.eclipse.swt.widgets.Control.gtk_key_press_event(Control.java:3019)
      	at org.eclipse.swt.widgets.Composite.gtk_key_press_event(Composite.java:734)
      	at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1743)
      	at org.eclipse.swt.widgets.Control.windowProc(Control.java:5016)
      	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4408)
      	at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
      	at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8422)
      	at org.eclipse.swt.widgets.Display.eventProc(Display.java:1245)
      	at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
      	at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2276)
      	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3207)
      	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
      	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
      	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
      	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
      	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
      	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
      	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:344)
      	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:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:616)
      	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
      	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
      	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
      	at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
      

      4. We can reopen such editor, the error won't be continue. BUT, If pressed "Undo" (ctrl + z) before reopen editor, the whole editor will be chaos status until you restart Eclipse.

            paowang paowang
            paowang paowang
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: