diff --git a/plugins/copyright/src/com/maddyhome/idea/copyright/CopyrightManager.java b/plugins/copyright/src/com/maddyhome/idea/copyright/CopyrightManager.java index 7fd39dc88b1c..a80ae8afe2c8 100644 --- a/plugins/copyright/src/com/maddyhome/idea/copyright/CopyrightManager.java +++ b/plugins/copyright/src/com/maddyhome/idea/copyright/CopyrightManager.java @@ -16,7 +16,6 @@ package com.maddyhome.idea.copyright; -import com.intellij.openapi.Disposable; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.components.*; @@ -76,6 +75,8 @@ public class CopyrightManager extends AbstractProjectComponent implements JDOMEx @NotNull StartupManager startupManager) { super(project); if (!myProject.isDefault()) { + final NewFileTracker newFileTracker = NewFileTracker.getInstance(); + Disposer.register(myProject, newFileTracker); startupManager.runWhenProjectIsInitialized(new Runnable() { @Override public void run() { @@ -85,7 +86,7 @@ public class CopyrightManager extends AbstractProjectComponent implements JDOMEx final Document document = e.getDocument(); final VirtualFile virtualFile = fileDocumentManager.getFile(document); if (virtualFile == null) return; - if (!NewFileTracker.getInstance().poll(virtualFile)) return; + if (!newFileTracker.poll(virtualFile)) return; if (!fileTypeUtil.isSupportedFile(virtualFile)) return; final Module module = projectRootManager.getFileIndex().getModuleForFile(virtualFile); if (module == null) return; @@ -109,16 +110,6 @@ public class CopyrightManager extends AbstractProjectComponent implements JDOMEx } }); } - - // make sure there is no huge pile of new files in tests - if (application.isUnitTestMode()) { - Disposer.register(myProject, new Disposable() { - @Override - public void dispose() { - NewFileTracker.getInstance().clear(); - } - }); - } } @NonNls diff --git a/plugins/copyright/src/com/maddyhome/idea/copyright/util/NewFileTracker.java b/plugins/copyright/src/com/maddyhome/idea/copyright/util/NewFileTracker.java index 25229fe5f2c4..0a703182b5e4 100644 --- a/plugins/copyright/src/com/maddyhome/idea/copyright/util/NewFileTracker.java +++ b/plugins/copyright/src/com/maddyhome/idea/copyright/util/NewFileTracker.java @@ -16,18 +16,15 @@ package com.maddyhome.idea.copyright.util; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileAdapter; -import com.intellij.openapi.vfs.VirtualFileEvent; -import com.intellij.openapi.vfs.VirtualFileManager; +import com.intellij.openapi.Disposable; +import com.intellij.openapi.vfs.*; import gnu.trove.THashSet; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.TestOnly; import java.util.Collections; import java.util.Set; -public class NewFileTracker { +public class NewFileTracker implements Disposable{ public static NewFileTracker getInstance() { return instance; } @@ -37,19 +34,21 @@ public class NewFileTracker { } private NewFileTracker() { - VirtualFileManager.getInstance().addVirtualFileListener(new VirtualFileAdapter() { + final VirtualFileManager virtualFileManager = VirtualFileManager.getInstance(); + virtualFileManager.addVirtualFileListener(new VirtualFileAdapter() { @Override public void fileCreated(VirtualFileEvent event) { + if (event.isFromRefresh()) return; newFiles.add(event.getFile()); } - }); + }, this); } private final Set newFiles = Collections.synchronizedSet(new THashSet()); private static final NewFileTracker instance = new NewFileTracker(); - @TestOnly - public void clear() { + @Override + public void dispose() { newFiles.clear(); } } \ No newline at end of file