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