You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/10/31 07:07:08 UTC
[iotdb] branch master updated: Fix IoTDBConfigNodeSnapshotIT.testCreateUDF
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 8f78e26799 Fix IoTDBConfigNodeSnapshotIT.testCreateUDF
8f78e26799 is described below
commit 8f78e26799987bc52c6b24a4520e7f9678891061
Author: Liao Lanyu <14...@qq.com>
AuthorDate: Mon Oct 31 15:07:02 2022 +0800
Fix IoTDBConfigNodeSnapshotIT.testCreateUDF
---
.../iotdb/commons/executable/ExecutableManager.java | 12 +++++++-----
.../commons/udf/service/UDFManagementService.java | 19 ++++++++++++++-----
2 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/executable/ExecutableManager.java b/node-commons/src/main/java/org/apache/iotdb/commons/executable/ExecutableManager.java
index 058a370ce7..0f19508623 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/executable/ExecutableManager.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/executable/ExecutableManager.java
@@ -224,11 +224,13 @@ public class ExecutableManager {
}
protected void saveToDir(ByteBuffer byteBuffer, String destination) throws IOException {
- Path path = Paths.get(destination);
- Files.deleteIfExists(path);
- Files.createFile(path);
- try (FileOutputStream outputStream = new FileOutputStream(destination)) {
- outputStream.getChannel().write(byteBuffer);
+ try {
+ Path path = Paths.get(destination);
+ Files.deleteIfExists(path);
+ Files.createFile(path);
+ try (FileOutputStream outputStream = new FileOutputStream(destination)) {
+ outputStream.getChannel().write(byteBuffer);
+ }
} catch (IOException e) {
LOGGER.warn(
"Error occurred during writing bytebuffer to {} , the cause is {}", destination, e);
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java b/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
index 3e03f2d604..f98be3ecf1 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/udf/service/UDFManagementService.java
@@ -197,9 +197,8 @@ public class UDFManagementService {
public void doRegister(UDFInformation udfInformation) throws UDFManagementException {
String functionName = udfInformation.getFunctionName();
String className = udfInformation.getClassName();
- try {
- UDFClassLoader currentActiveClassLoader =
- UDFClassLoaderManager.getInstance().updateAndGetActiveClassLoader();
+ try (UDFClassLoader currentActiveClassLoader =
+ UDFClassLoaderManager.getInstance().updateAndGetActiveClassLoader()) {
updateAllRegisteredClasses(currentActiveClassLoader);
Class<?> functionClass = Class.forName(className, true, currentActiveClassLoader);
@@ -268,8 +267,18 @@ public class UDFManagementService {
}
if (!information.isBuiltin()) {
- Thread.currentThread()
- .setContextClassLoader(UDFClassLoaderManager.getInstance().getActiveClassLoader());
+ try {
+ Thread.currentThread()
+ .setContextClassLoader(
+ UDFClassLoaderManager.getInstance().updateAndGetActiveClassLoader());
+ } catch (IOException e) {
+ String errorMessage =
+ String.format(
+ "Failed to set UDFClassLoader for UDF %s(%s) , because %s",
+ functionName, information.getClassName(), e);
+ LOGGER.warn(errorMessage, e);
+ throw new RuntimeException(e);
+ }
}
try {