You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/04/04 12:33:13 UTC
[pulsar] 04/15: [pulsar-functions] fix some IOExceptions when create functions from package URL (#14553)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 9e0b13fc4d862e9197e07bfe6cc34d57c07537f5
Author: Rui Fu <fr...@users.noreply.github.com>
AuthorDate: Wed Mar 16 19:01:27 2022 +0800
[pulsar-functions] fix some IOExceptions when create functions from package URL (#14553)
(cherry picked from commit f0d166f36e1fbd4df1e20ae2ccc7fcae822c17b4)
---
.../java/org/apache/pulsar/client/admin/internal/PackagesImpl.java | 3 ++-
.../org/apache/pulsar/functions/worker/rest/api/FunctionsImpl.java | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PackagesImpl.java b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PackagesImpl.java
index 4c7fc4cf299..77749e6421b 100644
--- a/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PackagesImpl.java
+++ b/pulsar-client-admin/src/main/java/org/apache/pulsar/client/admin/internal/PackagesImpl.java
@@ -25,6 +25,7 @@ import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
@@ -182,7 +183,7 @@ public class PackagesImpl extends ComponentResource implements Packages {
if (destinyPath.getParent() != null) {
Files.createDirectories(destinyPath.getParent());
}
- Files.copy(inputStream, destinyPath);
+ Files.copy(inputStream, destinyPath, StandardCopyOption.REPLACE_EXISTING);
future.complete(null);
} catch (IOException e) {
future.completeExceptionally(e);
diff --git a/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/FunctionsImpl.java b/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/FunctionsImpl.java
index dba3645c3e5..b2d0f36787e 100644
--- a/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/FunctionsImpl.java
+++ b/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/rest/api/FunctionsImpl.java
@@ -771,6 +771,7 @@ public class FunctionsImpl extends ComponentImpl implements Functions<PulsarWork
// use the Nar extraction directory as a temporary directory for downloaded files
tempDirectory = Paths.get(worker.getWorkerConfig().getNarExtractionDirectory());
}
+ Files.createDirectories(tempDirectory);
File file = Files.createTempFile(tempDirectory, "function", ".tmp").toFile();
worker.getBrokerAdmin().packages().download(packageName, file.toString());
return file;