mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
cleanup write action runner
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.openapi.application;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.util.ThrowableRunnable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -27,6 +28,13 @@ public abstract class BaseActionRunnable<T> {
|
||||
|
||||
protected abstract void run(@NotNull Result<T> result) throws Throwable;
|
||||
|
||||
/**
|
||||
* @deprecated use {@link ReadAction#run(ThrowableRunnable)}
|
||||
* or {@link WriteAction#run(ThrowableRunnable)}
|
||||
* or {@link com.intellij.openapi.command.WriteCommandAction#runWriteCommandAction(Project, Runnable)}
|
||||
* or similar
|
||||
*/
|
||||
@Deprecated
|
||||
@NotNull
|
||||
public abstract RunResult<T> execute();
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
*/
|
||||
package com.intellij.util;
|
||||
|
||||
import com.intellij.openapi.application.*;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.util.ThrowableComputable;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -28,14 +29,7 @@ public abstract class ActionRunner {
|
||||
*/
|
||||
@Deprecated
|
||||
public static void runInsideWriteAction(@NotNull final InterruptibleRunnable runnable) throws Exception {
|
||||
RunResult result = new WriteAction() {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
runnable.run();
|
||||
}
|
||||
}.execute();
|
||||
if (result.getThrowable() instanceof Exception) throw (Exception)result.getThrowable();
|
||||
result.throwException();
|
||||
WriteAction.computeAndWait(()->{runnable.run(); return null; });
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
-51
@@ -1,51 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.openapi.application
|
||||
|
||||
import com.intellij.openapi.command.WriteCommandAction
|
||||
import com.intellij.testFramework.fixtures.BareTestFixtureTestCase
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.Test
|
||||
|
||||
class RunnableActionsTest : BareTestFixtureTestCase() {
|
||||
private val message = "<test message>"
|
||||
|
||||
@Test fun readAction() = doTest(object : ReadAction<Any>() {
|
||||
override fun run(result: Result<Any>) = throw Exception(message)
|
||||
})
|
||||
|
||||
@Test fun writeAction() = doTest(object : WriteAction<Any>() {
|
||||
override fun run(result: Result<Any>) = throw Exception(message)
|
||||
})
|
||||
|
||||
@Test fun commandAction() = doTest(object : WriteCommandAction<Any>(null) {
|
||||
override fun run(result: Result<Any>) = throw Exception(message)
|
||||
})
|
||||
|
||||
private fun doTest(action: BaseActionRunnable<Any>) {
|
||||
try {
|
||||
action.execute()
|
||||
fail("BaseActionRunnable.execute() should pass exceptions")
|
||||
}
|
||||
catch (e: RuntimeException) {
|
||||
assertThat(e.message).endsWith(message)
|
||||
}
|
||||
|
||||
val result:RunResult<Any> = action.executeSilently()
|
||||
assertThat(result.hasException()).isTrue()
|
||||
assertThat(result.throwable.message).endsWith(message)
|
||||
}
|
||||
}
|
||||
@@ -141,7 +141,7 @@ public class ExpectedHighlightingData {
|
||||
}
|
||||
|
||||
public void init() {
|
||||
WriteCommandAction.writeCommandAction(null).run(() -> {
|
||||
WriteCommandAction.runWriteCommandAction(null, () -> {
|
||||
extractExpectedLineMarkerSet(myDocument);
|
||||
extractExpectedHighlightsSet(myDocument);
|
||||
refreshLineMarkers();
|
||||
|
||||
+3
-7
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.java.generate.inspection
|
||||
|
||||
import com.intellij.openapi.application.Result
|
||||
|
||||
import com.intellij.openapi.command.WriteCommandAction
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiFile
|
||||
@@ -30,7 +30,6 @@ import org.jetbrains.java.generate.config.ConflictResolutionPolicy
|
||||
import org.jetbrains.java.generate.config.ReplacePolicy
|
||||
import org.jetbrains.java.generate.template.TemplateResource
|
||||
import org.jetbrains.java.generate.template.toString.ToStringTemplatesManager
|
||||
|
||||
/**
|
||||
* Created by Max Medvedev on 07/03/14
|
||||
*/
|
||||
@@ -148,12 +147,9 @@ class Foo {
|
||||
Collection<PsiMember> members = collectMembers(clazz)
|
||||
GenerateToStringWorker worker = buildWorker(clazz, policy)
|
||||
|
||||
new WriteCommandAction(myFixture.project, myFixture.file) {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
WriteCommandAction.runWriteCommandAction(myFixture.project, "","", {
|
||||
worker.execute(members, template, policy)
|
||||
}
|
||||
}.execute()
|
||||
}, myFixture.file)
|
||||
|
||||
myFixture.checkResult(after)
|
||||
}
|
||||
|
||||
+2
-6
@@ -11,7 +11,6 @@ import com.intellij.execution.process.*
|
||||
import com.intellij.execution.runners.ProgramRunner
|
||||
import com.intellij.module.ModuleGroupTestsKt
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.application.Result
|
||||
import com.intellij.openapi.command.WriteCommandAction
|
||||
import com.intellij.openapi.compiler.CompilerMessage
|
||||
import com.intellij.openapi.compiler.CompilerMessageCategory
|
||||
@@ -110,9 +109,7 @@ abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestCase imp
|
||||
}
|
||||
|
||||
protected void setupTestSources() {
|
||||
new WriteCommandAction(getProject()) {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
WriteCommandAction.runWriteCommandAction(getProject(), {
|
||||
final ModuleRootManager rootManager = ModuleRootManager.getInstance(myModule)
|
||||
final ModifiableRootModel rootModel = rootManager.getModifiableModel()
|
||||
final ContentEntry entry = rootModel.getContentEntries()[0]
|
||||
@@ -120,8 +117,7 @@ abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestCase imp
|
||||
entry.addSourceFolder(myFixture.getTempDirFixture().findOrCreateDir("src"), false)
|
||||
entry.addSourceFolder(myFixture.getTempDirFixture().findOrCreateDir("tests"), true)
|
||||
rootModel.commit()
|
||||
}
|
||||
}.execute()
|
||||
})
|
||||
}
|
||||
|
||||
protected Module addDependentModule() {
|
||||
|
||||
+3
-9
@@ -15,16 +15,13 @@
|
||||
*/
|
||||
package org.jetbrains.plugins.groovy.refactoring.copy
|
||||
|
||||
import com.intellij.openapi.application.Result
|
||||
|
||||
import com.intellij.openapi.command.WriteCommandAction
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.refactoring.copy.CopyClassesHandler
|
||||
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase
|
||||
import org.jetbrains.annotations.NotNull
|
||||
import org.jetbrains.plugins.groovy.util.TestUtils
|
||||
|
||||
/**
|
||||
* @author peter
|
||||
*/
|
||||
@@ -43,14 +40,11 @@ class GroovyCopyClassTest extends LightCodeInsightFixtureTestCase {
|
||||
|
||||
final PsiClass srcClass = myFixture.javaFacade.findClass("foo.$testName", GlobalSearchScope.allScope(project))
|
||||
assertTrue(CopyClassesHandler.canCopyClass(srcClass))
|
||||
new WriteCommandAction(project, [] as PsiFile[]) {
|
||||
@Override
|
||||
protected void run(@NotNull Result result) throws Throwable {
|
||||
WriteCommandAction.runWriteCommandAction(project, {
|
||||
def map = Collections.singletonMap(srcClass.navigationElement.containingFile, [srcClass] as PsiClass[])
|
||||
def dir = srcClass.manager.findDirectory(myFixture.tempDirFixture.getFile("bar"))
|
||||
CopyClassesHandler.doCopyClasses(map, "${testName}_after", dir, project)
|
||||
}
|
||||
}.execute()
|
||||
});
|
||||
|
||||
myFixture.checkResultByFile("bar/${testName}_after.groovy", "${testName}_after.groovy", true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user