diff --git a/commons/src/main/java/org/archive/util/TextUtils.java b/commons/src/main/java/org/archive/util/TextUtils.java
index 94fdfe86..dc17b1c4 100644
--- a/commons/src/main/java/org/archive/util/TextUtils.java
+++ b/commons/src/main/java/org/archive/util/TextUtils.java
@@ -24,7 +24,10 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
import java.io.Writer;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
@@ -251,4 +254,38 @@ public class TextUtils {
e.printStackTrace(new PrintWriter(sw));
return sw.toString();
}
+
+ /**
+ * Exception- and warning-free URL-escaping utility method.
+ *
+ * @param s String to escape
+ * @return URL-escaped string
+ */
+ @SuppressWarnings("deprecation")
+ public static String urlEscape(String s) {
+ try {
+ return URLEncoder.encode(s,"UTF8");
+ } catch (UnsupportedEncodingException e) {
+ // should be impossible; all JVMs must support UTF8
+ // but have a fallback just in case
+ return URLEncoder.encode(s);
+ }
+ }
+
+ /**
+ * Exception- and warning-free URL-unescaping utility method.
+ *
+ * @param s String do unescape
+ * @return URL-unescaped String
+ */
+ @SuppressWarnings("deprecation")
+ public static String urlUnescape(String s) {
+ try {
+ return URLDecoder.decode(s, "UTF8");
+ } catch (UnsupportedEncodingException e) {
+ // should be impossible; all JVMs must support UTF8
+ // but have a fallback just in case
+ return URLDecoder.decode(s);
+ }
+ }
}
\ No newline at end of file
diff --git a/dist/src/main/conf/jobs/profile-defaults/defaults.xml b/dist/src/main/conf/jobs/profile-defaults/defaults.xml
index 060761e5..508776b0 100644
--- a/dist/src/main/conf/jobs/profile-defaults/defaults.xml
+++ b/dist/src/main/conf/jobs/profile-defaults/defaults.xml
@@ -61,10 +61,6 @@
-
-
-
-
diff --git a/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java b/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java
index 526cf7ec..f710b709 100644
--- a/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java
+++ b/engine/src/main/java/org/archive/crawler/framework/CrawlJob.java
@@ -53,6 +53,7 @@ import org.archive.spring.ConfigPath;
import org.archive.spring.ConfigPathConfigurer;
import org.archive.spring.PathSharingContext;
import org.archive.util.ArchiveUtils;
+import org.archive.util.TextUtils;
import org.joda.time.DateTime;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanCreationException;
@@ -126,6 +127,7 @@ public class CrawlJob implements Comparable, ApplicationListener{
} catch (IOException e) {
throw new RuntimeException(e);
}
+ jobLogger.setLevel(Level.INFO);
}
return jobLogger;
}
@@ -188,7 +190,7 @@ public class CrawlJob implements Comparable, ApplicationListener{
if(isRunning()) {
pw.println("ACTIVE; "+getCrawlController().getState()+":");
}
- pw.println(""+getShortName()+"");
+ pw.println(""+getShortName()+"");
if(isProfile()) {
pw.println("(profile)");
}
diff --git a/engine/src/main/java/org/archive/crawler/restlet/JobResource.java b/engine/src/main/java/org/archive/crawler/restlet/JobResource.java
index 68a5e5f2..9b943a83 100644
--- a/engine/src/main/java/org/archive/crawler/restlet/JobResource.java
+++ b/engine/src/main/java/org/archive/crawler/restlet/JobResource.java
@@ -36,6 +36,7 @@ import org.archive.crawler.reporting.StatisticsTracker;
import org.archive.spring.ConfigPath;
import org.archive.util.ArchiveUtils;
import org.archive.util.FileUtils;
+import org.archive.util.TextUtils;
import org.restlet.Context;
import org.restlet.data.CharacterSet;
import org.restlet.data.Form;
@@ -65,7 +66,7 @@ public class JobResource extends Resource {
super(ctx, req, res);
setModifiable(true);
getVariants().add(new Variant(MediaType.TEXT_HTML));
- cj = getEngine().getJob((String)req.getAttributes().get("job"));
+ cj = getEngine().getJob(TextUtils.urlUnescape((String)req.getAttributes().get("job")));
if(cj==null) {
throw new ResourceException(404);
}