This is an automated email from the ASF dual-hosted git repository. penghui pushed a commit to branch branch-2.9 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 2c36f8b4906854592a5d26224bb93583d68d4764 Author: Rui Fu <[email protected]> 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 4c7fc4c..77749e6 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 b00846d..0e3a28a 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 @@ -769,6 +769,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;
