Commit bbaf083c authored by Nicola Fulvio Calabria's avatar Nicola Fulvio Calabria
Browse files

Extended percent encoding management to UriService and added job

phase update when COMPLETED
parent 836bd0a7
Loading
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -112,14 +112,16 @@ public class JobService {
                    throw new UnsupportedOperationException("Not implemented yet");
            }
            
            job.setPhase(ExecutionPhase.COMPLETED);
            
        } catch (VoSpaceErrorSummarizableException e) {
            job.setPhase(ExecutionPhase.ERROR);
            job.setErrorSummary(ErrorSummaryFactory.newErrorSummary(e));            
            jobDAO.updateJob(job);
        } catch (Exception e) {
            job.setPhase(ExecutionPhase.ERROR);
            job.setErrorSummary(ErrorSummaryFactory.newErrorSummary(
                    new InternalFaultException(e)));            
        } finally {
            jobDAO.updateJob(job);
        }
    }
+24 −14
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
 */
package it.inaf.oats.vospace;

import it.inaf.oats.vospace.exception.InternalFaultException;
import it.inaf.oats.vospace.exception.InvalidURIException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -18,8 +19,10 @@ public class URIUtils {
    private static final Pattern FORBIDDEN_CHARS = Pattern.compile("[\\x00\\x08\\x0B\\x0C\\x0E-\\x1F" + Pattern.quote("<>?\":\\|'`*") + "]");
    private static final String SCHEME = "vos";

    public static String returnURIFromVosPath(String vosPath, String authority)
            throws URISyntaxException {
    public static String returnURIFromVosPath(String vosPath, String authority) {
        String result = null;

        try {
            URI uri = new URI(
                    SCHEME,
                    authority,
@@ -28,7 +31,14 @@ public class URIUtils {
                    null
            );

        return uri.toASCIIString();
            result = uri.toASCIIString();

        } catch (URISyntaxException e) {
            throw new InternalFaultException("unable to percent encode URI from authority and path: "
                    + authority + " , " + vosPath);
        }

        return result;
    }

    public static String returnVosPathFromNodeURI(Node myNode, String authority) {
+3 −3
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ public class UriService {
                case pushToVoSpace:
                case pullToVoSpace:
                    DataNode newNode = new DataNode();
                    newNode.setUri("vos://"+ authority +relativePath);
                    newNode.setUri(URIUtils.returnURIFromVosPath(relativePath, authority));
                    return createNodeService.createNode(newNode, relativePath, user);
                default:
                    throw new InternalFaultException("No supported job direction specified");
@@ -148,7 +148,7 @@ public class UriService {
            throw new InvalidArgumentException("Invalid target size: " + transfer.getTarget().size());
        }

        String relativePath = transfer.getTarget().get(0).substring("vos://".length() + authority.length());
        String relativePath = URIUtils.returnVosPathFromNodeURI(transfer.getTarget().get(0), authority);

        User user = (User) servletRequest.getUserPrincipal();
        String creator = user.getName();
@@ -233,7 +233,7 @@ public class UriService {
        Location location = locationDAO.findPortalLocation(url.getHost()).orElseThrow(()
                -> new InternalFaultException("No registered location found for host " + url.getHost()));

        String vosPath = nodeUri.replaceAll("vos://[^/]+", "");
        String vosPath = URIUtils.returnVosPathFromNodeURI(nodeUri, authority);

        String fileName = url.getPath().substring(url.getPath().lastIndexOf("/") + 1);

+1 −11
Original line number Diff line number Diff line
@@ -455,17 +455,7 @@ public class NodeDAO {
    }

    private String getUri(String path) {
        // Percent encode path
        String result = null;

        try {
            result = URIUtils.returnURIFromVosPath(path, authority);
        } catch (URISyntaxException e) {
            throw new InternalFaultException("unable to percent encode URI from authority and path: "
            + authority + " , " + path);
        }

        return result;
        return URIUtils.returnURIFromVosPath(path, authority);
    }

    private NodePaths getPathsFromResultSet(ResultSet rs) throws SQLException {