diff --git a/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java b/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java
index 2021bdbfd4fe1c18ea142e34ac93e234ed762571..fcee9523d97eecc311777cc6447b3538125e4d2f 100644
--- a/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java
+++ b/src/main/java/it/inaf/oats/vospace/datamodel/NodeUtils.java
@@ -85,6 +85,22 @@ public class NodeUtils {
         return sb.toString();
     }
 
+    public static String getLastPathElement(String path) {
+        if(path == null || path.isBlank() || !path.startsWith("/"))
+        {
+            throw new IllegalArgumentException();
+        }
+        
+        String[] pathComponents = path.split("[/]+");        
+        if(pathComponents.length == 0)
+        {
+            return "/";
+        } else {
+            return pathComponents[pathComponents.length-1];
+        }
+
+    }
+
     public static List<String> subPathComponents(String path) {
 
         List resultList = new ArrayList<String>();
diff --git a/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java b/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java
index 13df807889f49a0ba3ec6e653dafba92fbf9b0b3..2a79f73a950411f84f6a2a015ccca4cf81bc62f4 100644
--- a/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java
+++ b/src/test/java/it/inaf/oats/vospace/datamodel/NodeUtilsTest.java
@@ -2,7 +2,6 @@ package it.inaf.oats.vospace.datamodel;
 
 import java.util.ArrayList;
 import java.util.List;
-import net.ivoa.xml.vospace.v2.ContainerNode;
 import net.ivoa.xml.vospace.v2.DataNode;
 import net.ivoa.xml.vospace.v2.LinkNode;
 import net.ivoa.xml.vospace.v2.Node;
@@ -10,6 +9,7 @@ import net.ivoa.xml.vospace.v2.Property;
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import org.junit.jupiter.api.Test;
 
@@ -163,6 +163,24 @@ public class NodeUtilsTest {
 
         assertTrue(NodeUtils.checkIfReadable(node, "user2", List.of("group2", "group3")));
     }
+    
+    @Test
+    public void testGetLastPathElement() {
+        
+        assertThrows(IllegalArgumentException.class,() -> 
+        { NodeUtils.getLastPathElement(null);} );
+                
+        assertThrows(IllegalArgumentException.class,() -> 
+        { NodeUtils.getLastPathElement("  ");} );
+                
+        assertThrows(IllegalArgumentException.class,() -> 
+        { NodeUtils.getLastPathElement("http://asdasd");} );
+        
+        assertEquals("/", NodeUtils.getLastPathElement("/"));
+        
+        assertEquals("f1", NodeUtils.getLastPathElement("/pippo/test/f1"));
+        
+    }
 
     @Test
     public void testCheckReadableGroupsFalse() {