You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IntelliJ IDEA 2017.3 EAP (Ultimate Edition)
Build #IU-173.2941.3, built on October 4, 2017
JRE: 1.8.0_152-release-1012-b1 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6
Expected only one value per-inputId for IgnoreFilesIndex
Details: 482236
mobi.hsz.idea.gitignore.indexing.IgnoreEntryOccurrence@d2f6d35d
java.lang.Throwable: Expected only one value per-inputId for IgnoreFilesIndex
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:154)
at com.intellij.util.indexing.impl.ValueContainerImpl.removeAssociatedValue(ValueContainerImpl.java:99)
at com.intellij.util.indexing.impl.ChangeTrackingValueContainer.removeAssociatedValue(ChangeTrackingValueContainer.java:65)
at com.intellij.util.indexing.impl.MapIndexStorage.removeAllValues(MapIndexStorage.java:250)
at com.intellij.util.indexing.MemoryIndexStorage.removeAllValues(MemoryIndexStorage.java:179)
at com.intellij.util.indexing.impl.MapReduceIndex$5.process(MapReduceIndex.java:292)
at com.intellij.util.indexing.impl.CollectionInputDataDiffBuilder.differentiateWithKeySeq(CollectionInputDataDiffBuilder.java:54)
at com.intellij.util.indexing.impl.CollectionInputDataDiffBuilder.differentiate(CollectionInputDataDiffBuilder.java:41)
at com.intellij.util.indexing.impl.UpdateData.iterateKeys(UpdateData.java:56)
at com.intellij.util.indexing.impl.MapReduceIndex.updateWithMap(MapReduceIndex.java:319)
at com.intellij.util.indexing.impl.MapReduceIndex$2.compute(MapReduceIndex.java:221)
at com.intellij.util.indexing.impl.MapReduceIndex$2.compute(MapReduceIndex.java:217)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1712)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1692)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1645)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1578)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.freezeFileTypeTemporarilyIn(FileTypeManagerImpl.java:525)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1537)
at com.intellij.util.indexing.FileBasedIndexImpl.indexFileContent(FileBasedIndexImpl.java:1525)
at com.intellij.util.indexing.FileBasedIndexImpl.processRefreshedFile(FileBasedIndexImpl.java:1504)
at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1660)
at com.intellij.util.indexing.FileBasedIndexImpl$VirtualFileUpdateTask.doProcess(FileBasedIndexImpl.java:1657)
at com.intellij.util.indexing.UpdateTask.a(UpdateTask.java:76)
at com.intellij.util.indexing.UpdateTask.processAll(UpdateTask.java:46)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:1679)
at com.intellij.util.indexing.FileBasedIndexImpl.ensureUpToDate(FileBasedIndexImpl.java:722)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:876)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:962)
at com.intellij.util.indexing.FileBasedIndexImpl.a(FileBasedIndexImpl.java:933)
at com.intellij.util.indexing.FileBasedIndexImpl.getValues(FileBasedIndexImpl.java:784)
at mobi.hsz.idea.gitignore.indexing.IgnoreFilesIndex.getEntries(IgnoreFilesIndex.java:233)
at mobi.hsz.idea.gitignore.IgnoreManager$2.fetch(IgnoreManager.java:142)
at mobi.hsz.idea.gitignore.IgnoreManager$2.fetch(IgnoreManager.java:139)
at mobi.hsz.idea.gitignore.util.CachedConcurrentMap.get(CachedConcurrentMap.java:76)
at mobi.hsz.idea.gitignore.IgnoreManager.isFileIgnored(IgnoreManager.java:331)
at mobi.hsz.idea.gitignore.vcs.IgnoreFileStatusProvider.getFileStatus(IgnoreFileStatusProvider.java:70)
at com.intellij.openapi.vcs.impl.FileStatusManagerImpl.calcStatus(FileStatusManagerImpl.java:135)
at com.intellij.openapi.vcs.impl.FileStatusManagerImpl.fileStatusChanged(FileStatusManagerImpl.java:231)
at com.intellij.openapi.vcs.impl.VcsFileStatusProvider.refreshFileStatusFromDocument(VcsFileStatusProvider.java:140)
at com.intellij.openapi.vcs.impl.FileStatusManagerImpl.refreshFileStatusFromDocument(FileStatusManagerImpl.java:278)
at com.intellij.openapi.vcs.impl.FileStatusManagerImpl$3.documentChanged(FileStatusManagerImpl.java:120)
at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:99)
at com.intellij.util.EventDispatcher.access$200(EventDispatcher.java:35)
at com.intellij.util.EventDispatcher$2.invoke(EventDispatcher.java:79)
at com.sun.proxy.$Proxy41.documentChanged(Unknown Source)
at com.intellij.openapi.editor.impl.DocumentImpl.a(DocumentImpl.java:782)
at com.intellij.openapi.editor.impl.DocumentImpl.a(DocumentImpl.java:712)
at com.intellij.openapi.editor.impl.DocumentImpl.a(DocumentImpl.java:580)
at com.intellij.openapi.editor.impl.DocumentImpl.replaceText(DocumentImpl.java:445)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl$2.run(FileDocumentManagerImpl.java:639)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1015)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.a(FileDocumentManagerImpl.java:625)
at com.intellij.openapi.command.impl.CoreCommandProcessor.a(CoreCommandProcessor.java:149)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:109)
at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:99)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.reloadFromDisk(FileDocumentManagerImpl.java:625)
at com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl.contentsChanged(FileDocumentManagerImpl.java:607)
at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.EventDispatcher.dispatch(EventDispatcher.java:99)
at com.intellij.util.EventDispatcher.access$200(EventDispatcher.java:35)
at com.intellij.util.EventDispatcher$2.invoke(EventDispatcher.java:79)
at com.sun.proxy.$Proxy27.contentsChanged(Unknown Source)
at com.intellij.openapi.vfs.impl.BulkVirtualFileListenerAdapter.fireAfter(BulkVirtualFileListenerAdapter.java:65)
at com.intellij.openapi.vfs.impl.BulkVirtualFileListenerAdapter.after(BulkVirtualFileListenerAdapter.java:56)
at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:443)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:404)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:393)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:381)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:45)
at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:231)
at com.sun.proxy.$Proxy167.storageFileChanged(Unknown Source)
at com.intellij.configurationStore.StorageVirtualFileTracker$addVfsChangesListener$1.after(StorageVirtualFileTracker.kt:108)
at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117)
at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:443)
at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:404)
at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:393)
at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:374)
at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:45)
at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:231)
at com.sun.proxy.$Proxy24.after(Unknown Source)
at com.intellij.openapi.vfs.newvfs.persistent.PersistentFSImpl$2.close(PersistentFSImpl.java:651)
at sun.nio.cs.StreamEncoder.implClose(StreamEncoder.java:320)
at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:149)
at java.io.OutputStreamWriter.close(OutputStreamWriter.java:233)
at com.intellij.openapi.util.JDOMUtil.write(JDOMUtil.java:386)
at com.intellij.configurationStore.FileBasedStorageKt$doWrite$$inlined$runUndoTransparentWriteAction$1$1.compute(actions.kt:76)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1027)
at com.intellij.configurationStore.FileBasedStorageKt$doWrite$$inlined$runUndoTransparentWriteAction$1.run(actions.kt:29)
at com.intellij.openapi.command.impl.CoreCommandProcessor.runUndoTransparentAction(CoreCommandProcessor.java:323)
at com.intellij.configurationStore.FileBasedStorageKt.a(FileBasedStorage.kt:295)
at com.intellij.configurationStore.FileBasedStorageKt.writeFile(FileBasedStorage.kt:202)
at com.intellij.configurationStore.FileBasedStorage$FileSaveSession.saveLocally(FileBasedStorage.kt:100)
at com.intellij.configurationStore.XmlElementStorage$XmlElementStorageSaveSession.save(XmlElementStorage.kt:151)
at com.intellij.configurationStore.FileBasedStorage$FileSaveSession.save(FileBasedStorage.kt:85)
at com.intellij.configurationStore.ComponentStoreImplKt.executeSave(ComponentStoreImpl.kt:485)
at com.intellij.configurationStore.ComponentStoreImpl.doSave(ComponentStoreImpl.kt:239)
at com.intellij.configurationStore.ProjectStoreImpl.doSave(ProjectStoreImpl.kt:334)
at com.intellij.configurationStore.ComponentStoreImpl.save(ComponentStoreImpl.kt:196)
at com.intellij.openapi.components.impl.stores.StoreUtil.save(StoreUtil.java:49)
at com.intellij.openapi.project.impl.ProjectImpl.save(ProjectImpl.java:349)
at com.intellij.openapi.components.impl.stores.StoreUtil.saveDocumentsAndProjectsAndApp(StoreUtil.java:126)
at com.intellij.openapi.application.impl.ApplicationImpl.saveAll(ApplicationImpl.java:1425)
at com.intellij.ide.actions.SaveAllAction.actionPerformed(SaveAllAction.java:36)
at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:216)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:233)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$1.performAction(IdeKeyEventDispatcher.java:576)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.a(IdeKeyEventDispatcher.java:625)
at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:195)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:624)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.e(IdeKeyEventDispatcher.java:479)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:213)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:622)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
The text was updated successfully, but these errors were encountered:
I suspect that the problem is caused by mutability of Value class used in IDE's index.
IgnoreEntryOccurrence class should be persistently immutable.
E.g. it does mean that deserialized instance of IgnoreEntryOccurrence when file was removed is equals (and have the same hashcode) with instance of IgnoreEntryOccurrence when file exists.
I think that this issue causes other problems on IDE side, e.g. https://youtrack.jetbrains.com/issue/IDEA-180296
Fix has been released with v2.3.0-RC.1 on EAP channel.
Previously hashcode was built using real file object - now I just use the URL (protocol + full path) so we should avoid this change.
In addition, I don't create file's object during the deserialization - it's done on demand when something requires this file.
Prerequisites
plugin version: 2.2.1
IntelliJ IDEA 2017.3 EAP (Ultimate Edition)
Build #IU-173.2941.3, built on October 4, 2017
JRE: 1.8.0_152-release-1012-b1 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.12.6
The text was updated successfully, but these errors were encountered: