Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 380843

Summary: index commit messages of changesets
Product: z_Archived Reporter: Kilian Matt <kilian.matt>
Component: MylynAssignee: Kilian Matt <kilian.matt>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: achmetow84, steffen.pingel
Version: 1.0   
Target Milestone: 2.0   
Hardware: All   
OS: All   
Whiteboard:
Bug Depends on:    
Bug Blocks: 378097, 380844    

Description Kilian Matt CLA 2012-05-28 17:02:19 EDT
Similar to the task list indexing, the commit messages of the version control systems could be also indexed. 
This would speed up the listing of associated changesets of a task.
Comment 1 Steffen Pingel CLA 2012-06-29 16:26:06 EDT
This looks like a great proposal and would complement the task-based activity tracing implementation perfectly. I think we should consider generalizing this index in the future so that other task-related information such as builds or reviews could be cached as well but it seems like the right approach to start with change sets as an initial driver.
Comment 2 Steffen Pingel CLA 2012-06-29 16:35:54 EDT
I ran into a few exceptions when I tried the change in one of my runtime workspaces:

!ENTRY org.eclipse.mylyn.tasks.ui 4 0 2012-06-29 22:32:41.912
!MESSAGE Error creating task editor part: ""
!STACK 0
java.lang.NullPointerException
	at org.eclipse.mylyn.versions.tasks.mapper.generic.GenericTaskChangesetMapper.getChangesetsForTask(GenericTaskChangesetMapper.java:71)
	at org.eclipse.mylyn.versions.tasks.ui.ChangesetPart.getInput(ChangesetPart.java:168)
	at org.eclipse.mylyn.versions.tasks.ui.ChangesetPart.createTable(ChangesetPart.java:125)
	at org.eclipse.mylyn.versions.tasks.ui.ChangesetPart.createControl(ChangesetPart.java:91)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.initializePart(AbstractTaskEditorPage.java:1308)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.access$7(AbstractTaskEditorPage.java:1300)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage$14.run(AbstractTaskEditorPage.java:857)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.createParts(AbstractTaskEditorPage.java:848)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.createParts(AbstractTaskEditorPage.java:833)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.createFormContentInternal(AbstractTaskEditorPage.java:720)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.createFormContent(AbstractTaskEditorPage.java:665)
	at org.eclipse.ui.forms.editor.FormPage$1.run(FormPage.java:152)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.forms.editor.FormPage.createPartControl(FormPage.java:150)
	at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPage.createPartControl(AbstractTaskEditorPage.java:618)
	at org.eclipse.ui.forms.editor.FormEditor.pageChange(FormEditor.java:471)
	at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:292)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1276)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1300)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1285)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1079)
	at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3023)
	at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1730)
	at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:270)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1276)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3554)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3179)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1022)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:916)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:585)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	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:353)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
	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:629)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1414)

!ENTRY org.eclipse.core.jobs 4 2 2012-06-29 22:32:48.549
!MESSAGE An internal error occurred during: "Indexing repositories.".
!STACK 0
java.lang.RuntimeException: java.lang.NullPointerException
	at org.eclipse.mylyn.versions.tasks.mapper.internal.ChangeSetIndexer.reindex(ChangeSetIndexer.java:96)
	at org.eclipse.mylyn.versions.tasks.mapper.internal.RepositoryIndexer$IndexRepositoryJob.run(RepositoryIndexer.java:42)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Caused by: java.lang.NullPointerException
	at org.eclipse.mylyn.versions.tasks.mapper.internal.EclipseWorkspaceRepositorySource.fetchAllChangesets(EclipseWorkspaceRepositorySource.java:40)
	at org.eclipse.mylyn.versions.tasks.mapper.internal.ChangeSetIndexer.reindex(ChangeSetIndexer.java:93)
	... 2 more
Comment 3 Timur Achmetow CLA 2012-07-02 15:24:57 EDT
I get here a exception from lucene: 

org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@I:\GSoC\runtime-New_configuration\.metadata\.mylyn\.taskListIndex\write.lock
	at org.apache.lucene.store.Lock.obtain(Lock.java:85)
	at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1545)
	at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1074)
	at org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.indexQueuedTasks(TaskListIndex.java:1120)
	at org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.maintainIndex(TaskListIndex.java:1061)
	at org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.access$0(TaskListIndex.java:1033)
	at org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex$MaintainIndexJob.run(TaskListIndex.java:162)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 4 Timur Achmetow CLA 2012-07-02 16:01:33 EDT
(In reply to comment #3)
> I get here a exception from lucene [...]

Oh sorry, that's not a problem with the indexing of the commit messages; 
it's more a problem with the TaskListIndex.java
Comment 5 Steffen Pingel CLA 2012-07-03 12:24:44 EDT
Tim, please file a separate bug report for the timeouts you are observing and provide steps to reproduce the problem.
Comment 6 Steffen Pingel CLA 2013-04-27 15:48:40 EDT
Merged with https://git.eclipse.org/r/#/c/8356/.