Skip to content
Snippets Groups Projects
Commit 5157ea1f authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Fixed relative path issue in NodeDAO

parent 7380d68c
No related branches found
No related tags found
No related merge requests found
...@@ -41,30 +41,30 @@ public class NodeDAO { ...@@ -41,30 +41,30 @@ public class NodeDAO {
String path = nodeURI.replaceAll("vos://[^/]+", ""); String path = nodeURI.replaceAll("vos://[^/]+", "");
String parentPath = getParentPath(path); String parentPath = getParentPath(path);
String sql = "SELECT path from " String sql = "SELECT path, relative_path from "
+ "node n join node_vos_path p on n.node_id = p.node_id " + "node n join node_vos_path p on n.node_id = p.node_id "
+ "where p.vos_path = ?"; + "where p.vos_path = ?";
List<String> ltreeParentPaths = jdbcTemplate.query(conn -> { List<NodePaths> paths = jdbcTemplate.query(conn -> {
PreparedStatement ps = conn.prepareStatement(sql); PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, parentPath); ps.setString(1, parentPath);
return ps; return ps;
}, (row, index) -> { }, (row, index) -> {
return row.getString("path"); return getPathsFromResultSet(row);
}); });
if (ltreeParentPaths.isEmpty()) { if (paths.isEmpty()) {
throw new IllegalStateException("Unable to find parent node during node creation"); throw new IllegalStateException("Unable to find parent node during node creation");
} }
if (ltreeParentPaths.size() > 1) { if (paths.size() > 1) {
throw new IllegalStateException("Multiple ltree parent paths found for " + parentPath); throw new IllegalStateException("Multiple ltree parent paths found for " + parentPath);
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("INSERT INTO node"); sb.append("INSERT INTO node");
sb.append(" (name, busy_state, owner_id, creator_id, group_read, group_write,"); sb.append(" (name, busy_state, owner_id, creator_id, group_read, group_write,");
sb.append(" is_public, parent_path, type)"); sb.append(" is_public, parent_path, parent_relative_path, type)");
sb.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ? )"); sb.append(" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ? )");
jdbcTemplate.update(conn -> { jdbcTemplate.update(conn -> {
PreparedStatement ps = conn.prepareStatement(sb.toString()); PreparedStatement ps = conn.prepareStatement(sb.toString());
...@@ -75,8 +75,9 @@ public class NodeDAO { ...@@ -75,8 +75,9 @@ public class NodeDAO {
ps.setArray(5, fromPropertyToArray(ps, getProperty(myNode, getPropertyURI("groupread")))); ps.setArray(5, fromPropertyToArray(ps, getProperty(myNode, getPropertyURI("groupread"))));
ps.setArray(6, fromPropertyToArray(ps, getProperty(myNode, getPropertyURI("groupwrite")))); ps.setArray(6, fromPropertyToArray(ps, getProperty(myNode, getPropertyURI("groupwrite"))));
ps.setBoolean(7, Boolean.valueOf(getProperty(myNode, getPropertyURI("publicread")))); ps.setBoolean(7, Boolean.valueOf(getProperty(myNode, getPropertyURI("publicread"))));
ps.setObject(8, ltreeParentPaths.get(0), Types.OTHER); ps.setObject(8, paths.get(0).path, Types.OTHER);
ps.setObject(9, getDbNodeType(myNode), Types.OTHER); ps.setObject(9, paths.get(0).relativePath, Types.OTHER);
ps.setObject(10, getDbNodeType(myNode), Types.OTHER);
return ps; return ps;
}); });
...@@ -283,18 +284,18 @@ public class NodeDAO { ...@@ -283,18 +284,18 @@ public class NodeDAO {
private class NodePaths { private class NodePaths {
private String path; private final String path;
private String parentPath; private final String relativePath;
public NodePaths(String myPath, String myParentPath) { public NodePaths(String myPath, String myRelativePath) {
this.path = myPath; this.path = myPath;
this.parentPath = myParentPath; this.relativePath = myRelativePath;
} }
@Override @Override
public String toString() { public String toString() {
return parentPath + " " + path; return relativePath + " " + path;
} }
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment