[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [Subclipse-dev] i created a eclipse bug report for something that with the current build doesnt work correctly any more with subclipse

From: Mark Phippard <markphip_at_gmail.com>
Date: Sat, 7 Feb 2009 18:40:19 -0500

Thanks for debugging it

Sent from my iPhone

On Feb 7, 2009, at 5:50 PM, jcompagner <jcompagner_at_gmail.com> wrote:

> to me more precise there are 3 of them
>
> Left (file input), Right (FileRevisionEditorInput) and the Ancestor
> that also has a FileRevisionEditorInput
>
> That is all created in TextMergeViewer.updateContent(Object
> ancestor, Object left, Object right)
> And one of the last things is:
>
> if (!isConfigured) {
> configureSourceViewer(fAncestor.getSourceViewer(), false);
> configureSourceViewer(fLeft.getSourceViewer(),
> cc.isLeftEditable() && cp.isLeftEditable(input));
> configureSourceViewer(fRight.getSourceViewer(),
> cc.isRightEditable() && cp.isRightEditable(input));
> isConfigured = true; // configure once
> }
>
> So the first configureSourceViewer is for the ancestor and that
> call causes a setContent(String) on the left (and its dirty state is
> set)
> because the ancestor has a FileRevisionEditorInput.
>
> its all in this piece of stack: (read from the bottom to the top)
>
> JavaMergeViewer
> $CompilationUnitEditorAdapter.doSetInput(IEditorInput) line: 551
> << THAT causes a doSetInput with a FileRevisionEditorInput on the
> CompilationUnitEditorAdapter which is as ar as i know only there for
> the LEFT...
> AbstractTextEditor$19.run(IProgressMonitor) line: 3074
> ModalContext.runInCurrentThread(IRunnableWithProgress,
> IProgressMonitor) line: 464
> ModalContext.run(IRunnableWithProgress, boolean, IProgressMonitor,
> Display) line: 372
> ApplicationWindow$1.run() line: 759
> BusyIndicator.showWhile(Display, Runnable) line: 70
> WorkbenchWindow(ApplicationWindow).run(boolean, boolean,
> IRunnableWithProgress) line: 756
> WorkbenchWindow.run(boolean, boolean, IRunnableWithProgress) line:
> 2577
> JavaMergeViewer
> $CompilationUnitEditorAdapter(
> AbstractTextEditor).internalInit(IWorkbenchWindow, IEditorSite,
> IEditorInput) line: 3092 <<< THIS will trigger a runnable
> JavaMergeViewer
> $CompilationUnitEditorAdapter(AbstractTextEditor).init(IEditorSite,
> IEditorInput) line: 3119
> JavaMergeViewer.getSourceViewerConfiguration(SourceViewer,
> IEditorInput) line: 281
> JavaMergeViewer.configureTextViewer(TextViewer) line: 210
> JavaMergeViewer(TextMergeViewer).configureSourceViewer(SourceViewer,
> boolean) line: 2869 <<< CONFIGURE is called on the ancestor first
> JavaMergeViewer(TextMergeViewer).updateContent(Object, Object,
> Object) line: 2820 << ALL the left.right and ancestor stuff are
> created
> JavaMergeViewer(ContentMergeViewer).internalRefresh(Object) line: 737
> JavaMergeViewer(ContentMergeViewer).inputChanged(Object, Object)
> line: 637
> JavaMergeViewer(ContentViewer).setInput(Object) line: 274
> JavaMergeViewer.setInput(Object) line: 150 <<< SET input on
> the java merge viewer with a SynInfoCompareInput$MyDifNode
>
>
>
>
> this is the complete stack until dirty is set:
>
> Thread [main] (Suspended)
> JavaMergeViewer(TextMergeViewer).updateDirtyState(IEditorInput,
> IDocumentProvider, char) line: 3027
> TextMergeViewer.access$12(TextMergeViewer, IEditorInput,
> IDocumentProvider, char) line: 3023
> TextMergeViewer$ContributorInfo.elementDirtyStateChanged(Object,
> boolean) line: 990
> TextFileDocumentProvider
> $FileBufferListener.dirtyStateChanged(IFileBuffer, boolean) line: 287
> TextFileBufferManager$3.run() line: 711
> SafeRunner.run(ISafeRunnable) line: 37
>
> ResourceTextFileBufferManager(
> TextFileBufferManager).fireDirtyStateChanged(IFileBuffer, boolean)
> line: 709
> ResourceTextFileBuffer
> $DocumentListener.documentChanged(DocumentEvent) line: 77
>
> SynchronizableDocument(
> AbstractDocument).doFireDocumentChanged2(DocumentEvent) line: 739
>
> SynchronizableDocument(
> AbstractDocument).doFireDocumentChanged(DocumentEvent, boolean,
> IRegion) line: 712
>
> SynchronizableDocument(
> AbstractDocument).doFireDocumentChanged(DocumentEvent) line: 697
>
> SynchronizableDocument(
> AbstractDocument).fireDocumentChanged(DocumentEvent) line: 762
> SynchronizableDocument(AbstractDocument).set(String, long) line:
> 1203
> SynchronizableDocument.set(String, long) line: 223
> SynchronizableDocument(AbstractDocument).set(String) line: 1183
> SynchronizableDocument.set(String) line: 209
> DocumentAdapter$DocumentSetCommand.run() line: 127
> DocumentAdapter.run(Runnable) line: 112
> DocumentAdapter.access$1(Runnable) line: 109
> DocumentAdapter$DocumentSetCommand.set(String) line: 132
> DocumentAdapter.setContents(String) line: 495
>
> CompilationUnitDocumentProvider.
> createFakeCompiltationUnit(IStorageEditorInput, boolean) line: 1074
>
> CompilationUnitDocumentProvider.createFakeCompiltationUnit(Object,
> boolean) line: 1006
> CompilationUnitDocumentProvider.connect(Object) line: 1203
> JavaMergeViewer
> $CompilationUnitEditorAdapter(
> AbstractTextEditor).doSetInput(IEditorInput) line: 4089
> JavaMergeViewer
> $CompilationUnitEditorAdapter(
> StatusTextEditor).doSetInput(IEditorInput) line: 203
> JavaMergeViewer
> $CompilationUnitEditorAdapter(
> AbstractDecoratedTextEditor).doSetInput(IEditorInput) line: 1329
> JavaMergeViewer
> $CompilationUnitEditorAdapter(
> JavaEditor).internalDoSetInput(IEditorInput) line: 2552
> JavaMergeViewer
> $CompilationUnitEditorAdapter(JavaEditor).doSetInput(IEditorInput)
> line: 2539
> JavaMergeViewer
> $CompilationUnitEditorAdapter(
> CompilationUnitEditor).doSetInput(IEditorInput) line: 1359
> JavaMergeViewer
> $CompilationUnitEditorAdapter.doSetInput(IEditorInput) line: 551
> AbstractTextEditor$19.run(IProgressMonitor) line: 3074
> ModalContext.runInCurrentThread(IRunnableWithProgress,
> IProgressMonitor) line: 464
> ModalContext.run(IRunnableWithProgress, boolean,
> IProgressMonitor, Display) line: 372
> ApplicationWindow$1.run() line: 759
> BusyIndicator.showWhile(Display, Runnable) line: 70
> WorkbenchWindow(ApplicationWindow).run(boolean, boolean,
> IRunnableWithProgress) line: 756
> WorkbenchWindow.run(boolean, boolean, IRunnableWithProgress)
> line: 2577
> JavaMergeViewer
> $CompilationUnitEditorAdapter(
> AbstractTextEditor).internalInit(IWorkbenchWindow, IEditorSite,
> IEditorInput) line: 3092
> JavaMergeViewer
> $CompilationUnitEditorAdapter(AbstractTextEditor).init(IEditorSite,
> IEditorInput) line: 3119
> JavaMergeViewer.getSourceViewerConfiguration(SourceViewer,
> IEditorInput) line: 281
> JavaMergeViewer.configureTextViewer(TextViewer) line: 210
>
> JavaMergeViewer(TextMergeViewer).configureSourceViewer(SourceViewer,
> boolean) line: 2869
> JavaMergeViewer(TextMergeViewer).updateContent(Object, Object,
> Object) line: 2820
> JavaMergeViewer(ContentMergeViewer).internalRefresh(Object)
> line: 737
> JavaMergeViewer(ContentMergeViewer).inputChanged(Object, Object)
> line: 637
> JavaMergeViewer(ContentViewer).setInput(Object) line: 274
> JavaMergeViewer.setInput(Object) line: 150
> CompareEditorInput
> $3(CompareViewerSwitchingPane).setInput(Object) line: 256
>
> SyncInfoCompareInput(
> CompareEditorInput).internalSetContentPaneInput(Object) line: 840
> CompareEditorInput.access$7(CompareEditorInput, Object) line: 838
> CompareEditorInput$13.run() line: 778
> BusyIndicator.showWhile(Display, Runnable) line: 70
> SyncInfoCompareInput(CompareEditorInput).feed1(ISelection) line:
> 772
> SyncInfoCompareInput(CompareEditorInput).feedInput() line: 750
>
> SyncInfoCompareInput(CompareEditorInput).createContents(Composite)
> line: 573
> CompareEditor.createCompareControl() line: 447
> CompareEditor.access$6(CompareEditor) line: 416
> CompareEditor$3.run() line: 372
> UILockListener.doPendingWork() line: 155
> UISynchronizer$3.run() line: 158
> RunnableLock.run() line: 35
> UISynchronizer(Synchronizer).runAsyncMessages(boolean) line: 133
> Display.runAsyncMessages(boolean) line: 3852
> Display.readAndDispatch() line: 3473
> Workbench.runEventLoop(Window$IExceptionHandler, Display) line:
> 2388
> Workbench.runUI() line: 2352
> Workbench.access$4(Workbench) line: 2204
> Workbench$5.run() line: 499
> Realm.runWithDefault(Realm, Runnable) line: 333
> Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) line:
> 492
> PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor)
> line: 149
> IDEApplication.start(IApplicationContext) line: 113
> EclipseAppHandle.run(Object) line: 194
> EclipseAppLauncher.runApplication(Object) line: 110
> EclipseAppLauncher.start(Object) line: 79
> EclipseStarter.run(Object) line: 368
> EclipseStarter.run(String[], Runnable) line: 179
> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line:
> not available [native method]
> NativeMethodAccessorImpl.invoke(Object, Object[]) line: not
> available
> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: not
> available
> Method.invoke(Object, Object...) line: not available
> Main.invokeFramework(String[], URL[]) line: 556
> Main.basicRun(String[]) line: 511
> Main.run(String[]) line: 1270
> Main.main(String[]) line: 1246
>
>
> i will also update the bug in bugzilla of eclipse because this
> really sounds like a bug somewhere in eclipse.
>
> johan
>

------------------------------------------------------
http://subclipse.tigris.org/ds/viewMessage.do?dsForumId=1043&dsMessageId=1121224

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_subclipse.tigris.org].
Received on 2009-02-08 00:40:34 CET

This is an archived mail posted to the Subclipse Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.