diff --git a/java/java-tests/testSrc/com/intellij/java/psi/impl/file/impl/PsiEventsTest.java b/java/java-tests/testSrc/com/intellij/java/psi/impl/file/impl/PsiEventsTest.java index e3aca02a2fa2..d95e533550e8 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/impl/file/impl/PsiEventsTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/impl/file/impl/PsiEventsTest.java @@ -18,6 +18,7 @@ package com.intellij.java.psi.impl.file.impl; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.command.WriteCommandAction; +import com.intellij.openapi.diagnostic.DefaultLogger; import com.intellij.openapi.editor.Document; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileTypes.FileTypeManager; @@ -793,7 +794,23 @@ public class PsiEventsTest extends PsiTestCase { assertTrue(documentManager.isCommitted(document)); } - public void testTreeChangePreprocessorThrowsException() throws Exception { + public void testCopyFile() throws Exception { + VirtualFile original = createFile(myModule, mySrcDir1, "a.xml", "").getVirtualFile(); + + EventsTestListener listener = new EventsTestListener(); + myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable()); + + PsiDirectory psiDir2 = PsiManager.getInstance(myProject).findDirectory(mySrcDir2); + assertNotNull(psiDir2); + WriteAction.run(() -> original.copy(this, mySrcDir2, "b.xml")); + + assertEquals("beforeChildAddition\n" + + "childAdded\n", listener.getEventsString()); + } + + public void testSuccessfulRecoveryAfterTreeChangePreprocessorThrowsException() throws Exception { + DefaultLogger.disableStderrDumping(getTestRootDisposable()); + PsiFile psiFile = createFile("a.xml", ""); VirtualFile vFile = psiFile.getVirtualFile(); Document document = FileDocumentManager.getInstance().getDocument(vFile); @@ -809,7 +826,8 @@ public class PsiEventsTest extends PsiTestCase { WriteCommandAction.runWriteCommandAction(myProject, () -> document.insertString(0, " ")); PsiDocumentManager.getInstance(myProject).commitAllDocuments(); fail("NPE expected"); - } catch (NullPointerException ignore) { + } catch (AssertionError e) { + assertInstanceOf(e.getCause(), NullPointerException.class); } finally { ((PsiManagerImpl)getPsiManager()).removeTreeChangePreprocessor(preprocessor); } @@ -818,18 +836,4 @@ public class PsiEventsTest extends PsiTestCase { PsiDocumentManager.getInstance(myProject).commitAllDocuments(); assertEquals(" ", getPsiManager().findFile(vFile).getText()); } - - public void testCopyFile() throws Exception { - VirtualFile original = createFile(myModule, mySrcDir1, "a.xml", "").getVirtualFile(); - - EventsTestListener listener = new EventsTestListener(); - myPsiManager.addPsiTreeChangeListener(listener,getTestRootDisposable()); - - PsiDirectory psiDir2 = PsiManager.getInstance(myProject).findDirectory(mySrcDir2); - assertNotNull(psiDir2); - WriteAction.run(() -> original.copy(this, mySrcDir2, "b.xml")); - - assertEquals("beforeChildAddition\n" + - "childAdded\n", listener.getEventsString()); - } }