Community
Participate
Working Groups
In the task list view, whenever I type something, an Eclipse error dialog pops up. Stack trace below. In my ".metadata\.mylyn\.taskListIndex" folder, I have a file named "segments-toolcita2.gen". I guess this file got created automatically by MS OneDrive when there was a conflict between it and the same file on another one of my systems. Deleting the file solves the problem. I would expect Mylyn to function correctly even in the presence of unexpected files. --------------------- eclipse.buildId=4.4.0.I20140606-1215 java.version=1.8.0_20 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US Framework arguments: -product org.eclipse.epp.package.rcp.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.rcp.product java.lang.NumberFormatException: For input string: "toolcita2.gen" at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Long.parseLong(Unknown Source) at org.apache.lucene.index.SegmentInfos.generationFromSegmentsFileName(SegmentInfos.java:226) at org.apache.lucene.index.SegmentInfos.getCurrentSegmentGeneration(SegmentInfos.java:161) at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:644) at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75) at org.apache.lucene.index.IndexReader.open(IndexReader.java:462) at org.apache.lucene.index.IndexReader.open(IndexReader.java:322) at org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.getIndexReader(TaskListIndex.java:772) at org.eclipse.mylyn.internal.tasks.index.core.TaskListIndex.matches(TaskListIndex.java:569) at org.eclipse.mylyn.internal.tasks.index.ui.IndexedSubstringPatternFilter.isLeafMatch(IndexedSubstringPatternFilter.java:47) at org.eclipse.ui.dialogs.PatternFilter.isElementVisible(PatternFilter.java:243) at org.eclipse.ui.dialogs.PatternFilter.computeAnyVisible(PatternFilter.java:138) at org.eclipse.ui.dialogs.PatternFilter.isAnyVisible(PatternFilter.java:121) at org.eclipse.ui.dialogs.PatternFilter.isParentMatch(PatternFilter.java:262) at org.eclipse.ui.dialogs.PatternFilter.isElementVisible(PatternFilter.java:243) at org.eclipse.ui.dialogs.PatternFilter.select(PatternFilter.java:149) at org.eclipse.jface.viewers.ViewerFilter.filter(ViewerFilter.java:51) at org.eclipse.ui.dialogs.PatternFilter.filter(PatternFilter.java:89) at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:909) at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:617) at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2649) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1918) at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:684) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1893) at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1850) at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1528) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1436) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:366) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1525) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:533) at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1292) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1481) at org.eclipse.ui.dialogs.FilteredTree$NotifyingTreeViewer.refresh(FilteredTree.java:1280) at org.eclipse.ui.dialogs.FilteredTree$2.runInUIThread(FilteredTree.java:528) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:97) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) at org.eclipse.equinox.launcher.Main.run(Main.java:1465) at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
This is a bug in Apache Lucene: https://issues.apache.org/jira/browse/LUCENE-4405. Since it's been open for 2 years we should probably try to handle that exception:
Actually there is not much we can do about it. The only way to resolve the issue is for the user to delete the file that Lucene objects to.
Thanks, Sam. What about wrapping the error and throwing a more descriptive error message, and perhaps put it in the error log rather than a modal dialog?
You're right, there shouldn't be a modal dialog when the index is corrupt and we can't fix it. Maybe once per session, to let the user know, but not every time they type in the task list. I am not sure that we can reliably extract the name of the offending file from the exception thrown by Lucene, but we could make a best effort. This bug has been marked helpwanted to indicate that we would be happy to support a community contribution to resolve it.
Mylyn has been restructured, and our issue tracking has moved to GitHub [1]. We are closing ~14K Bugzilla issues to give the new team a fresh start. If you feel that this issue is still relevant, please create a new one on GitHub. [1] https://github.com/orgs/eclipse-mylyn