[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [ecf-dev] Exception handling start message null
|
On Tue, 10 Feb 2009 10:46:37 -0800
Scott Lewis <slewis@xxxxxxxxxxxxxxxxx> wrote:
Hi Scott,
Thanks for the reply.
> As far as I know, it is not a common problem...I have not seen it before.
>
> One thought...is it possible that one of the clients is using the ECF
> 3.0 stream? With ECF 3.0 we've made a number of changes, and the 3.0
> clients are not compatible with the 2.0/2.1-based clients
> (unfortunately...but the scope of the changes in ECF 3.0...specifically
> the abstraction into the new sync API...made it necessary to change the
> wire protocol significantly).
No - there were always two equal versions of ECF (and they were not
3.0 - I sit in front of both machines :) )
> Is there anything in the log when this happens? If so could you attach it?
Yes, I get this:
<cut>
!SESSION 2009-02-11 18:11:23.668
-----------------------------------------------
eclipse.buildId=M20080911-1700 java.version=1.6.0_0
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=pl_PL
Command-line arguments: -os linux -ws gtk -arch x86
!ENTRY org.eclipse.ecf.internal.provisional.docshare 4 4 2009-02-11
18:29:58.581 !MESSAGE Exception receiving message
!STACK 0
org.eclipse.jface.text.BadLocationException
at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1145)
at
org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:151)
at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176)
at
org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:137)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare$6.run(DocShare.java:448)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3036)
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:386)
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:549) at
org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at
org.eclipse.equinox.launcher.Main.run(Main.java:1236)
!ENTRY org.eclipse.ecf.internal.provisional.docshare 4 4 2009-02-11
18:29:58.679 !MESSAGE Exception receiving message
!STACK 0
org.eclipse.jface.text.BadLocationException
at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1145)
at
org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:151)
at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176)
at
org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:137)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare$6.run(DocShare.java:448)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3036)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at
org.eclipse.jface.window.Window.open(Window.java:801) at
org.eclipse.jface.dialogs.MessageDialog.openError(MessageDialog.java:322)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare.showErrorToUser(DocShare.java:548)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare$6.run(DocShare.java:453)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3036)
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:386)
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:549) at
org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at
org.eclipse.equinox.launcher.Main.run(Main.java:1236)
!ENTRY org.eclipse.ecf.internal.provisional.docshare 4 4 2009-02-11
18:29:58.752 !MESSAGE Exception receiving message
!STACK 0
org.eclipse.jface.text.BadLocationException
at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1145)
at
org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:151)
at
org.eclipse.jface.text.AbstractDocument.replace(AbstractDocument.java:1176)
at
org.eclipse.core.internal.filebuffers.SynchronizableDocument.replace(SynchronizableDocument.java:137)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare$6.run(DocShare.java:448)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3036)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at
org.eclipse.jface.window.Window.open(Window.java:801) at
org.eclipse.jface.dialogs.MessageDialog.openError(MessageDialog.java:322)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare.showErrorToUser(DocShare.java:548)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare$6.run(DocShare.java:453)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3036)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825) at
org.eclipse.jface.window.Window.open(Window.java:801) at
org.eclipse.jface.dialogs.MessageDialog.openError(MessageDialog.java:322)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare.showErrorToUser(DocShare.java:548)
at
org.eclipse.ecf.internal.provisional.docshare.DocShare$6.run(DocShare.java:453)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3378)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3036)
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:386)
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:549) at
org.eclipse.equinox.launcher.Main.basicRun(Main.java:504) at
org.eclipse.equinox.launcher.Main.run(Main.java:1236)
</cut>
> Also...if you are able, we would appreciate you trying to reproduce
> using two ECF 3.0 clients...so that we can prevent this problem from
> appearing in ECF 3.0.
I tried to run Eclipse 3.5/ECF 3.0. After several minutes of shared
editing I get a dialog:
Exception handling start message Exception applying
change to document
and in log file:
<cut>
!ENTRY org.eclipse.ecf.internal.provisional.docshare 4 4 2009-02-11
19:38:27.998 !MESSAGE Exception receiving message
!STACK 1
org.eclipse.ecf.sync.ModelUpdateException: Exception applying change to
document at
org.eclipse.ecf.sync.doc.DocumentChangeMessage.applyToModel(DocumentChangeMessage.java:153)
at org.eclipse.ecf.docshare.DocShare$6.run(DocShare.java:425) at
org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:133)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3451)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3098)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2388)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2352) at
org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2204) at
org.eclipse.ui.internal.Workbench$5.run(Workbench.java:499) at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:333)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:492)
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:194)
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:368)
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:556) at
org.eclipse.equinox.launcher.Main.basicRun(Main.java:511) at
org.eclipse.equinox.launcher.Main.run(Main.java:1270) !SUBENTRY 1
org.eclipse.ecf.identity 4 0 2009-02-11 19:38:28.000 !MESSAGE Exception
applying change to document
</cut>
It seems to me, that it may be the same problem.
I thought, that maybe the problem is, that some of messages might not
get delivered (e.g. dropped by the server)? I did a following test
(which I belive confirms my "theory" :) ): I added
System.out.println("Got a " + remoteMsg.getOffset() + " " +
remoteMsg.getText());
in DocShare.java:418 and
System.out.println("Sending " +
msg.getOffset() + " " + msg.getText()); in DocShare.java:645.
Then I tried to reproduce the exception and on the console I got:
for the first instance of Eclipse:
<cut>
Sending 2142 a
Sending 2143 s
Sending 2144 d
Sending 2145 /
Sending 2146 k
Sending 2147 l
Sending 2148 f
Sending 2149 j
Sending 2150 a
Sending 2151 ;
Sending 2152 f
Sending 2153 j
Sending 2154 k
Sending 2155
Sending 2156
Sending 2157
Sending 2158 s
Sending 2159 k
Sending 2160 d
<many lines with sent messages...>
Sending 2417
Sending 2418
</cut>
and for the second one:
<cut>
Got a 2142 a
Got a 2143 s
Got a 2144 d
Got a 2145 /
Got a 2146 k
Got a 2147 l
Got a 2148 f
Got a 2149 j
Got a 2150 a
Got a 2151 ;
Got a 2152 f
Got a 2153 j
Got a 2154 k
Got a 2417
Got a 2418
</cut>
So obviously ~250 messages are missing. What do you think? Maybe if
such situation occurs, one side of the sharing session should request
an automatic synchronization of whole document? A less complicated
solution is to show a suitable information (instead of "null") in the
dialog (user would now what happened and that he has to restart the
sharing editing session - the resynchronization would be performed) ?
Regards,
Pawel