From d48b2d37d554f0ed4c92c9bb708578a936f962b8 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Tue, 12 Jul 2022 10:42:17 +0530 Subject: [PATCH] Do not rethrow ProcessCancelledException from ProjectManager --- build-tools/projects/build.gradle | 1 + .../androidide/projects/ProjectManager.kt | 39 +++++++----------- gradle/dependencies.gradle | 1 + tests/test-home/.androidide/init/model.jar | Bin 56309 -> 56309 bytes 4 files changed, 17 insertions(+), 24 deletions(-) diff --git a/build-tools/projects/build.gradle b/build-tools/projects/build.gradle index 9da265eba..d7a62f702 100644 --- a/build-tools/projects/build.gradle +++ b/build-tools/projects/build.gradle @@ -35,6 +35,7 @@ dependencies { implementation project (path: ':common') + implementation common.io implementation google.guava testImplementation project (path: ':build-tools:tooling-api-testing') diff --git a/build-tools/projects/src/main/java/com/itsaky/androidide/projects/ProjectManager.kt b/build-tools/projects/src/main/java/com/itsaky/androidide/projects/ProjectManager.kt index 10d61950f..985fe4b52 100644 --- a/build-tools/projects/src/main/java/com/itsaky/androidide/projects/ProjectManager.kt +++ b/build-tools/projects/src/main/java/com/itsaky/androidide/projects/ProjectManager.kt @@ -38,11 +38,13 @@ import java.io.BufferedReader import java.io.File import java.io.InputStream import java.io.StringReader +import java.nio.charset.Charset import java.nio.file.Files import java.nio.file.Path import java.time.Instant import java.util.* import java.util.concurrent.* +import org.apache.commons.io.FileUtils import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode.BACKGROUND @@ -335,9 +337,10 @@ object ProjectManager : EventReceiver { Files.newBufferedReader(file) } catch (noFile: java.nio.file.NoSuchFileException) { log.warn("No such file", noFile) - BufferedReader(StringReader("")) - } catch (other: Throwable) { - throw other + "".reader().buffered() + } catch (cancelled: ProcessCancelledException) { + log.debug("createFileReader(): cancelled") + "".reader().buffered() } } @@ -347,8 +350,9 @@ object ProjectManager : EventReceiver { } catch (noFile: java.nio.file.NoSuchFileException) { log.warn("No such file", noFile) "".byteInputStream() - } catch (other: Throwable) { - throw other + } catch (cancelled: ProcessCancelledException) { + log.debug("createFileInputStream(): cancelled") + "".byteInputStream() } } @@ -358,27 +362,14 @@ object ProjectManager : EventReceiver { private fun getFileContents(file: Path): String { return try { - val sb = StringBuilder() - createFileReader(file).use { - var line: String? - while (true) { - abortIfCancelled() - line = it.readLine() - if (line == null) { - break - } - - sb.append(line) - sb.append("\n") - } - } - - sb.toString() + abortIfCancelled() + FileUtils.readFileToString(file.toFile(), Charset.defaultCharset()) } catch (noFile: java.nio.file.NoSuchFileException) { log.warn("No such file", noFile) - return "" - } catch (other: Throwable) { - throw other + "" + } catch (cancelled: ProcessCancelledException) { + log.debug("getFileContents(): cancelled") + "" } } } diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle index 3c77685ea..3ca2e9743 100755 --- a/gradle/dependencies.gradle +++ b/gradle/dependencies.gradle @@ -16,6 +16,7 @@ ext { javaparser : 'com.github.javaparser:javaparser-symbol-solver-core:3.24.2', jsonrpc : 'org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.12.0', lang3 : 'org.apache.commons:commons-lang3:3.12.0', + io : 'commons-io:commons-io:2.11.0', kotlin : 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0', jkotlin : 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' ] diff --git a/tests/test-home/.androidide/init/model.jar b/tests/test-home/.androidide/init/model.jar index 643323f6a546af3955ad1a728bea00717628a951..b401a19562015b976b507537c656c349b9d75d2b 100644 GIT binary patch delta 31 ncmeymo%!o_W}X0VW)?061`ZB}+~AEoA?KNLgEuFgpUeXQp7;t3 delta 31 ncmeymo%!o_W}X0VW)?061`ZB}a)ymOA?KOO88#=KpUeXQnV|`K