From ce9de27639d6993e91511bfedecf81b93a915394 Mon Sep 17 00:00:00 2001 From: voddle Date: Mon, 30 Oct 2023 13:54:55 +0800 Subject: [PATCH 1/5] change exception of file exist --- .../main/java/alluxio/worker/dora/PagedDoraWorker.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java index 4079d0b15e5c..d0c09e75c7b1 100644 --- a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java +++ b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java @@ -32,10 +32,10 @@ import alluxio.conf.Configuration; import alluxio.conf.PropertyKey; import alluxio.exception.AccessControlException; -import alluxio.exception.FileAlreadyExistsException; import alluxio.exception.runtime.AlluxioRuntimeException; import alluxio.exception.runtime.FailedPreconditionRuntimeException; import alluxio.exception.runtime.UnavailableRuntimeException; +import alluxio.exception.status.AlreadyExistsException; import alluxio.exception.status.FailedPreconditionException; import alluxio.grpc.Command; import alluxio.grpc.CommandType; @@ -961,9 +961,7 @@ public OpenFileHandle createFile(String path, CreateFilePOptions options) boolean overWrite = options.hasOverwrite() ? options.getOverwrite() : false; boolean exists = ufs.exists(path); if (!overWrite && exists) { - throw new RuntimeException( - new FileAlreadyExistsException( - String.format("File %s already exists but no overwrite flag", path))); + throw new AlreadyExistsException(String.format("File %s already exists but no overwrite flag", path)); } else if (overWrite) { // client is going to overwrite this file. We need to invalidate the cached meta and data. mMetaManager.removeFromMetaStore(path); @@ -1091,8 +1089,7 @@ public void createDirectory(String path, CreateDirectoryPOptions options) mMetaManager.loadFromUfs(path); mMetaManager.invalidateListingCacheOfParent(path); if (!success) { - throw new RuntimeException( - new FileAlreadyExistsException(String.format("%s already exists", path))); + throw new AlreadyExistsException(String.format("%s already exists", path)); } } catch (IOException e) { throw new RuntimeException(e); From 0e8b9b7d4cbc68c0ac0860cdc01ea42cfd0ba5e8 Mon Sep 17 00:00:00 2001 From: voddle Date: Mon, 30 Oct 2023 13:55:38 +0800 Subject: [PATCH 2/5] format --- .../src/main/java/alluxio/worker/dora/PagedDoraWorker.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java index d0c09e75c7b1..62502d41a380 100644 --- a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java +++ b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java @@ -961,7 +961,8 @@ public OpenFileHandle createFile(String path, CreateFilePOptions options) boolean overWrite = options.hasOverwrite() ? options.getOverwrite() : false; boolean exists = ufs.exists(path); if (!overWrite && exists) { - throw new AlreadyExistsException(String.format("File %s already exists but no overwrite flag", path)); + throw new AlreadyExistsException(String.format("File %s already exists" + + "but no overwrite flag", path)); } else if (overWrite) { // client is going to overwrite this file. We need to invalidate the cached meta and data. mMetaManager.removeFromMetaStore(path); From 5019f47627f8a6b9feff420b6c4fd9286c3acea6 Mon Sep 17 00:00:00 2001 From: voddle Date: Mon, 30 Oct 2023 17:29:50 +0800 Subject: [PATCH 3/5] throw IOE directly --- .../src/main/java/alluxio/worker/dora/PagedDoraWorker.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java index 62502d41a380..8da940c1e173 100644 --- a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java +++ b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java @@ -1093,7 +1093,9 @@ public void createDirectory(String path, CreateDirectoryPOptions options) throw new AlreadyExistsException(String.format("%s already exists", path)); } } catch (IOException e) { - throw new RuntimeException(e); + // why wrap a IOE in to a RuntimeException??? no way AlluxioRuntimeException can catch it + // IOE would be caught by AlluxioRuntimeException + throw e; } } From 9fdcf24874457225883228775a5f007ae1b6fd30 Mon Sep 17 00:00:00 2001 From: voddle Date: Mon, 30 Oct 2023 18:01:53 +0800 Subject: [PATCH 4/5] adapt new exception --- .../cli/fs/command/DoraMkdirCommandIntegrationTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java b/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java index 9985036db2a2..31650c5507d3 100644 --- a/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java +++ b/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java @@ -51,7 +51,7 @@ public void testMkdirExisting() { assertEquals(0, mFsShell.run("mkdir", uri.toString())); assertEquals(-1, mFsShell.run("mkdir", uri.toString())); assertTrue( - mOutput.toString().contains("UNKNOWN: alluxio.exception.FileAlreadyExistsException")); + mOutput.toString().contains("ALREADY_EXISTS")); } @Test @@ -72,11 +72,12 @@ public void testMkdirPathWithWhiteSpaces() throws Exception { } } + // TODO(xinyu): should test a invalid path, maybe redesign this test case XD @Test public void testMkdirInvalidPath() { assertEquals(-1, mFsShell.run("mkdir", "")); assertTrue( - mOutput.toString().contains("UNKNOWN: alluxio.exception.FileAlreadyExistsException")); + mOutput.toString().contains("ALREADY_EXISTS")); } @Test From 966eedb7cfff1ae431a64b7ac65c3001918f1a4f Mon Sep 17 00:00:00 2001 From: YichuanSun Date: Thu, 9 Nov 2023 14:31:52 +0800 Subject: [PATCH 5/5] AlluxioRuntimeException cannot extract FileAlreadyExistsException from RuntimeException --- .../src/main/java/alluxio/worker/dora/PagedDoraWorker.java | 1 - .../client/cli/fs/command/DoraMkdirCommandIntegrationTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java index 8da940c1e173..99943b2c840f 100644 --- a/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java +++ b/dora/core/server/worker/src/main/java/alluxio/worker/dora/PagedDoraWorker.java @@ -1093,7 +1093,6 @@ public void createDirectory(String path, CreateDirectoryPOptions options) throw new AlreadyExistsException(String.format("%s already exists", path)); } } catch (IOException e) { - // why wrap a IOE in to a RuntimeException??? no way AlluxioRuntimeException can catch it // IOE would be caught by AlluxioRuntimeException throw e; } diff --git a/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java b/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java index 31650c5507d3..9f0e65d298f6 100644 --- a/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java +++ b/dora/tests/integration/src/test/java/alluxio/client/cli/fs/command/DoraMkdirCommandIntegrationTest.java @@ -72,7 +72,6 @@ public void testMkdirPathWithWhiteSpaces() throws Exception { } } - // TODO(xinyu): should test a invalid path, maybe redesign this test case XD @Test public void testMkdirInvalidPath() { assertEquals(-1, mFsShell.run("mkdir", ""));