This is an automated email from the ASF dual-hosted git repository.

joerghoh pushed a commit to branch OAK-10473-handle-illegalArgumentException
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git

commit 98dad07847f4640bb22464d1b99d546c7a272704
Author: Joerg Hoh <[email protected]>
AuthorDate: Fri Oct 13 16:20:12 2023 +0200

    OAK-10473 do not throw an IAE on invalid names
---
 .../oak/plugins/identifier/IdentifierManager.java           |  7 ++++---
 .../oak/plugins/identifier/IdentifierManagerTest.java       | 13 +++----------
 .../oak/security/user/UserImporterMembershipIgnoreTest.java |  2 +-
 3 files changed, 8 insertions(+), 14 deletions(-)

diff --git 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
index 02f119feaa..9f60ed4644 100644
--- 
a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
+++ 
b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java
@@ -49,7 +49,6 @@ import org.jetbrains.annotations.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static 
org.apache.jackrabbit.guava.common.base.Preconditions.checkArgument;
 import static org.apache.jackrabbit.guava.common.base.Predicates.notNull;
 import static org.apache.jackrabbit.guava.common.collect.Iterators.filter;
 import static 
org.apache.jackrabbit.guava.common.collect.Iterators.singletonIterator;
@@ -129,8 +128,10 @@ public class IdentifierManager {
             String uuid = k == -1
                     ? identifier
                     : identifier.substring(0, k);
-
-            checkArgument(UUIDUtils.isValidUUID(uuid), "Not a valid identifier 
'" + identifier + '\'');
+            if (!UUIDUtils.isValidUUID(uuid)) {
+                log.warn("Not a valid identifier '{}'",identifier);
+                return null;
+            }
 
             Tree tree = resolveUUIDToTree(createPropertyValue(uuid));
             if (tree == null) {
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManagerTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManagerTest.java
index 234f71264d..6766df245d 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManagerTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManagerTest.java
@@ -96,11 +96,8 @@ public class IdentifierManagerTest {
         assertEquals(PATH_Z1, identifierManager.getTree(ID_Z1).getPath());
         assertNull(identifierManager.getTree(ID_NON_EXISTING));
 
-        try {
-            identifierManager.getTree(ID_INVALID);
-            fail("Expected IllegalArgumentException");
-        }
-        catch (IllegalArgumentException expected) { }
+        assertNull(identifierManager.getTree(ID_INVALID));
+
     }
 
     @Test
@@ -111,11 +108,7 @@ public class IdentifierManagerTest {
         assertEquals(PATH_Z1, identifierManager.getPath(ID_Z1));
         assertNull(identifierManager.getPath(ID_NON_EXISTING));
 
-        try {
-            identifierManager.getPath(ID_INVALID);
-            fail("Expected IllegalArgumentException");
-        }
-        catch (IllegalArgumentException expected) { }
+        assertNull(identifierManager.getPath(ID_INVALID));
     }
 
     @Test
diff --git 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
index 80e92c4689..037cca18fa 100644
--- 
a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
+++ 
b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterMembershipIgnoreTest.java
@@ -65,7 +65,7 @@ public class UserImporterMembershipIgnoreTest extends 
UserImporterBaseTest {
         assertTrue(importer.start(memberRefList));
     }
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test
     public void testInvalidMemberContentId() throws Exception {
         importer.startChildInfo(createNodeInfo("memberRef", 
NT_REP_MEMBER_REFERENCES), ImmutableList.of(createPropInfo(REP_MEMBERS, 
"memberId")));
         importer.processReferences();

Reply via email to