diff --git a/modules/src/main/java/org/archive/modules/CrawlURI.java b/modules/src/main/java/org/archive/modules/CrawlURI.java index 66fb5fb1..318b7fd7 100644 --- a/modules/src/main/java/org/archive/modules/CrawlURI.java +++ b/modules/src/main/java/org/archive/modules/CrawlURI.java @@ -66,6 +66,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -651,12 +652,12 @@ implements Reporter, Serializable, OverlayContext { */ public Collection getAnnotations() { @SuppressWarnings("unchecked") - List list = (List)getData().get(A_ANNOTATIONS); - if (list == null) { - list = new ArrayList(); - getData().put(A_ANNOTATIONS, list); + Collection annotations = (Collection)getData().get(A_ANNOTATIONS); + if (annotations == null) { + annotations = new LinkedHashSet(); + getData().put(A_ANNOTATIONS, annotations); } - return list; + return annotations; } /** diff --git a/modules/src/main/java/org/archive/modules/extractor/Link.java b/modules/src/main/java/org/archive/modules/extractor/Link.java index 15897251..a8f5f3ee 100644 --- a/modules/src/main/java/org/archive/modules/extractor/Link.java +++ b/modules/src/main/java/org/archive/modules/extractor/Link.java @@ -133,19 +133,20 @@ public class Link implements Serializable, Comparable { } - public static void addRelativeToVia(CrawlURI uri, int max, - String newUri, LinkContext context, Hop hop) throws URIException { + public static void addRelativeToVia(CrawlURI uri, int max, String newUri, + LinkContext context, Hop hop) throws URIException { UURI relTo = uri.getVia(); - if(relTo==null) { - LOGGER.info("no via where expected; using base instead: "+uri); - uri.getAnnotations().add("usedBaseForVia"); + if (relTo == null) { + if (!uri.getAnnotations().contains("usedBaseForVia")) { + LOGGER.info("no via where expected; using base instead: " + uri); + uri.getAnnotations().add("usedBaseForVia"); + } relTo = uri.getBaseURI(); } UURI dest = UURIFactory.getInstance(relTo, newUri); add2(uri, max, dest, context, hop); } - public static void add(CrawlURI uri, int max, String newUri, LinkContext context, Hop hop) throws URIException { UURI dest = UURIFactory.getInstance(newUri);