Encode file path when building url, allows unicode

This commit is contained in:
Shane Kilkelly 2019-06-07 14:17:33 +01:00
parent 545a9240d3
commit 71df1b0a31

View file

@ -5,10 +5,13 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import uk.ac.ic.wlgitbridge.data.filestore.RawFile;
import uk.ac.ic.wlgitbridge.data.filestore.RawDirectory;
import uk.ac.ic.wlgitbridge.util.Log;
import uk.ac.ic.wlgitbridge.util.Util;
import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@ -115,10 +118,17 @@ public class CandidateSnapshot implements AutoCloseable {
JsonObject jsonFile = new JsonObject();
jsonFile.addProperty("name", file.getPath());
if (file.isChanged()) {
jsonFile.addProperty(
"url",
projectURL + "/" + file.getPath() + "?key=" + postbackKey
);
String path = file.getPath();
String encodedPath;
try {
encodedPath = URLEncoder.encode(path, "UTF-8");
} catch (UnsupportedEncodingException e) {
// This should never happen
Log.error("Error while encoding file path: projectUrl={}, path={}", projectURL, path, e);
encodedPath = path;
}
String url = projectURL + "/" + encodedPath + "?key=" + postbackKey;
jsonFile.addProperty("url", url);
}
return jsonFile;
}