From 9226fe7e8a322827230ef3883489a8ae72928d16 Mon Sep 17 00:00:00 2001 From: Sonia Zorba Date: Wed, 16 Jun 2021 15:53:32 +0200 Subject: [PATCH] Minor fix to os_name of renamed files --- .../it/inaf/oats/vospace/persistence/NodeDAO.java | 12 +----------- .../inaf/oats/vospace/persistence/NodeDAOTest.java | 10 +++++++++- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java b/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java index 1e8d3ee..14e784d 100644 --- a/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java +++ b/src/main/java/it/inaf/oats/vospace/persistence/NodeDAO.java @@ -159,16 +159,6 @@ public class NodeDAO { return newNode; } - /*private String getAllLevelsChildrenSelector(String path) { - String select = "(SELECT path FROM node WHERE node_id = (SELECT node_id FROM node_vos_path WHERE vos_path = ?))::varchar || '"; - - if (!"/".equals(path)) { - select += "."; - } - select += "*{1,}'"; - return select; - }*/ - private Node getNodeFromResultSet(ResultSet rs) throws SQLException { Node node = NodeUtils.getTypedNode(rs.getString("type")); @@ -291,7 +281,7 @@ public class NodeDAO { } public void renameNode(Long nodeId, String name) { - String sql = "UPDATE node SET name = ?\n" + String sql = "UPDATE node SET name = ?\n, os_name = COALESCE(os_name, name)" + "WHERE path ~ ('*.' || ?)::lquery"; jdbcTemplate.update(conn -> { diff --git a/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java b/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java index b429af0..cd7cb0d 100644 --- a/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java +++ b/src/test/java/it/inaf/oats/vospace/persistence/NodeDAOTest.java @@ -5,7 +5,6 @@ */ package it.inaf.oats.vospace.persistence; -import it.inaf.oats.vospace.URIUtils; import it.inaf.oats.vospace.datamodel.NodeProperties; import it.inaf.oats.vospace.exception.InternalFaultException; import it.inaf.oats.vospace.persistence.NodeDAO.ShortNodeDescriptor; @@ -239,14 +238,23 @@ public class NodeDAOTest { Optional rootId = dao.getNodeId(oldPath); assertTrue(rootId.isPresent()); + assertEquals("f1", dao.getNodeOsName(oldPath)); + dao.renameNode(rootId.get(), "f_pippo"); assertTrue(dao.listNode(oldPath).isEmpty()); assertTrue(dao.listNode(oldPathChild).isEmpty()); + + // After the first rename the os_name column has to be equal to the old name + // to avoid issues with renaming folders where some files have been uploaded + assertEquals("f1", dao.getNodeOsName(newPath)); assertTrue(dao.listNode(newPath).isPresent()); assertTrue(dao.listNode(newPathChild).isPresent()); + // The second rename mustn't change the os_name column + dao.renameNode(rootId.get(), "f_pippo_second_rename"); + assertEquals("f1", dao.getNodeOsName("/test1/f_pippo_second_rename")); } @Test -- GitLab