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;

Reply via email to