|
|
@@ -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;
|
|
|
}
|