diff --git a/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java b/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java index c9aeb7f3df22..46a13dcb54c5 100644 --- a/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java +++ b/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java @@ -94,7 +94,8 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem return provider.getVirtualFile() instanceof LightVirtualFile && !provider.isEventSystemEnabled(); } - @NotNull public PsiLock getFilePsiLock() { + @NotNull + public PsiLock getFilePsiLock() { return myPsiLock; } @@ -107,7 +108,7 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem protected PsiFile createFile(@NotNull Project project, @NotNull VirtualFile file, @NotNull FileType fileType) { if (fileType.isBinary() || file.is(VFileProperty.SPECIAL)) { return SingleRootFileViewProvider.isTooLargeForContentLoading(file) ? - new PsiLargeBinaryFileImpl(((PsiManagerImpl)getManager()), this) : + new PsiLargeBinaryFileImpl((PsiManagerImpl)getManager(), this) : new PsiBinaryFileImpl((PsiManagerImpl)getManager(), this); } if (!SingleRootFileViewProvider.isTooLargeForIntelligence(file)) { diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java index 24a4e0586d4f..5b3ec7dc1ddc 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/text/BlockSupportImpl.java @@ -32,6 +32,7 @@ import com.intellij.openapi.util.Couple; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.PsiManagerEx; import com.intellij.psi.impl.PsiManagerImpl; @@ -189,35 +190,34 @@ public class BlockSupportImpl extends BlockSupport { return diffLog; } - else { - FileViewProvider viewProvider = fileImpl.getViewProvider(); - viewProvider.getLanguages(); - FileType fileType = viewProvider.getVirtualFile().getFileType(); - String fileName = fileImpl.getName(); - final LightVirtualFile lightFile = new LightVirtualFile(fileName, fileType, newFileText, viewProvider.getVirtualFile().getCharset(), - fileImpl.getViewProvider().getModificationStamp()); - lightFile.setOriginalFile(viewProvider.getVirtualFile()); + FileViewProvider viewProvider = fileImpl.getViewProvider(); + viewProvider.getLanguages(); + VirtualFile virtualFile = viewProvider.getVirtualFile(); + FileType fileType = virtualFile.getFileType(); + String fileName = fileImpl.getName(); + LightVirtualFile lightFile = new LightVirtualFile(fileName, fileType, newFileText, virtualFile.getCharset(), + viewProvider.getModificationStamp()); + lightFile.setOriginalFile(virtualFile); - FileViewProvider copy = viewProvider.createCopy(lightFile); - if (copy.isEventSystemEnabled()) { - throw new AssertionError("Copied view provider must be non-physical for reparse to deliver correct events: " + viewProvider); - } - copy.getLanguages(); - SingleRootFileViewProvider.doNotCheckFileSizeLimit(lightFile); // optimization: do not convert file contents to bytes to determine if we should codeinsight it - PsiFileImpl newFile = getFileCopy(fileImpl, copy); - - newFile.setOriginalFile(fileImpl); - - final FileElement newFileElement = (FileElement)newFile.getNode(); - final FileElement oldFileElement = (FileElement)oldFileNode; - if (lastCommittedText.length() != oldFileElement.getTextLength()) { - throw new IncorrectOperationException(viewProvider.toString()); - } - DiffLog diffLog = mergeTrees(fileImpl, oldFileElement, newFileElement, indicator, lastCommittedText); - - ((PsiManagerEx)fileImpl.getManager()).getFileManager().setViewProvider(lightFile, null); - return diffLog; + FileViewProvider providerCopy = viewProvider.createCopy(lightFile); + if (providerCopy.isEventSystemEnabled()) { + throw new AssertionError("Copied view provider must be non-physical for reparse to deliver correct events: " + viewProvider); } + providerCopy.getLanguages(); + SingleRootFileViewProvider.doNotCheckFileSizeLimit(lightFile); // optimization: do not convert file contents to bytes to determine if we should codeinsight it + PsiFileImpl newFile = getFileCopy(fileImpl, providerCopy); + + newFile.setOriginalFile(fileImpl); + + final FileElement newFileElement = (FileElement)newFile.getNode(); + final FileElement oldFileElement = (FileElement)oldFileNode; + if (lastCommittedText.length() != oldFileElement.getTextLength()) { + throw new IncorrectOperationException(viewProvider.toString()); + } + DiffLog diffLog = mergeTrees(fileImpl, oldFileElement, newFileElement, indicator, lastCommittedText); + + ((PsiManagerEx)fileImpl.getManager()).getFileManager().setViewProvider(lightFile, null); + return diffLog; } @NotNull diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java index a311c91f0ee1..06b6c6b1a9aa 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/application/impl/ApplicationImplTest.java @@ -53,7 +53,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { protected void setUp() throws Exception { super.setUp(); exception = null; - timeOut = System.currentTimeMillis() + 2*60*1000; + timeOut = System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(2); } @Override @@ -65,7 +65,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { private volatile Throwable exception; public void testAcquireReadActionLockVsRunReadActionPerformance() throws Throwable { - final int N = 100000000; + final int N = 100_000_000; final Application application = ApplicationManager.getApplication(); String err = null; @@ -120,17 +120,17 @@ public class ApplicationImplTest extends LightPlatformTestCase { public void testRead50Write50LockPerformance() { - final int readIterations = 600000; - final int writeIterations = 600000; + final int readIterations = 600_000; + final int writeIterations = 600_000; runReadWrites(readIterations, writeIterations, 2000); } public void testRead100Write0LockPerformance() { - final int readIterations = 60000000; + final int readIterations = 60_000_000; final int writeIterations = 0; - runReadWrites(readIterations, writeIterations, 10000); + runReadWrites(readIterations, writeIterations, 10_000); } private static void runReadWrites(final int readIterations, final int writeIterations, int expectedMs) { @@ -251,7 +251,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { while (!read1Acquired.get() && ok()); TimeoutUtil.sleep(1000); // make sure it called writelock - long timeout = System.currentTimeMillis() + 10000; + long timeout = System.currentTimeMillis() + 10_000; while (System.currentTimeMillis() < timeout && ok()) { assertTrue(aboutToAcquireWrite.get()); assertTrue(read1Acquired.get()); @@ -270,7 +270,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { holdRead1.set(false); while (!writeAcquired.get() && ok()); - timeout = System.currentTimeMillis() + 10000; + timeout = System.currentTimeMillis() + 10_000; while (System.currentTimeMillis() < timeout && ok()) { assertTrue(aboutToAcquireWrite.get()); assertTrue(read1Acquired.get()); @@ -290,7 +290,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { while (!read2Released.get() && ok()); - timeout = System.currentTimeMillis() + 10000; + timeout = System.currentTimeMillis() + 10_000; while (System.currentTimeMillis() < timeout && ok()) { assertTrue(aboutToAcquireWrite.get()); assertTrue(read1Acquired.get()); @@ -500,7 +500,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { //noinspection SSBasedInspection SwingUtilities.invokeLater(() -> ApplicationManager.getApplication().runWriteAction(EmptyRunnable.getInstance())); boolean result = ((ApplicationEx)ApplicationManager.getApplication()) - .runProcessWithProgressSynchronouslyInReadAction(getProject(), "title", true, "cancel", null, () -> TimeoutUtil.sleep(10000)); + .runProcessWithProgressSynchronouslyInReadAction(getProject(), "title", true, "cancel", null, () -> TimeoutUtil.sleep(10_000)); assertTrue(result); UIUtil.dispatchAllInvocationEvents(); if (exception != null) throw exception; @@ -597,7 +597,7 @@ public class ApplicationImplTest extends LightPlatformTestCase { private static void waitForFuture(Future future) { try { - future.get(10000, TimeUnit.MILLISECONDS); + future.get(10_000, TimeUnit.MILLISECONDS); } catch (Exception e) { throw new RuntimeException(e);