From e37a4f0b3da605e68b5256b244ea1aa5bf198a68 Mon Sep 17 00:00:00 2001 From: reger Date: Sun, 6 Sep 2015 22:19:05 +0200 Subject: [PATCH] prevent metadata records in index w/o valid url by throwing MalformedURL exception on URIMetadataNode creation --- .../AbstractFederateSearchConnector.java | 6 ++-- .../federate/SolrFederateSearchConnector.java | 7 ++-- .../kelondro/data/meta/URIMetadataNode.java | 33 ++++--------------- source/net/yacy/peers/Protocol.java | 8 ++++- source/net/yacy/search/Switchboard.java | 10 ++++-- 5 files changed, 29 insertions(+), 35 deletions(-) diff --git a/source/net/yacy/cora/federate/AbstractFederateSearchConnector.java b/source/net/yacy/cora/federate/AbstractFederateSearchConnector.java index b9e7c297a..932b128ca 100644 --- a/source/net/yacy/cora/federate/AbstractFederateSearchConnector.java +++ b/source/net/yacy/cora/federate/AbstractFederateSearchConnector.java @@ -21,6 +21,7 @@ package net.yacy.cora.federate; import java.io.File; import java.io.IOException; +import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -143,7 +144,7 @@ abstract public class AbstractFederateSearchConnector implements FederateSearchC * @param remote result (with remote fieldnames) * @return SolrDocument with field names according to the YaCy schema */ - protected URIMetadataNode toYaCySchema(final SolrDocument doc) { + protected URIMetadataNode toYaCySchema(final SolrDocument doc) throws MalformedURLException { // set YaCy id String urlstr; if (localcfg.contains("sku")) { @@ -156,7 +157,8 @@ abstract public class AbstractFederateSearchConnector implements FederateSearchC } } - URIMetadataNode newdoc = new URIMetadataNode(urlstr); + final DigestURL url = new DigestURL(urlstr); + URIMetadataNode newdoc = new URIMetadataNode(url); Iterator it = localcfg.entryIterator(); while (it.hasNext()) { Configuration.Entry et = it.next(); diff --git a/source/net/yacy/cora/federate/SolrFederateSearchConnector.java b/source/net/yacy/cora/federate/SolrFederateSearchConnector.java index 7e9fceaaa..1a134a0fb 100644 --- a/source/net/yacy/cora/federate/SolrFederateSearchConnector.java +++ b/source/net/yacy/cora/federate/SolrFederateSearchConnector.java @@ -20,6 +20,7 @@ package net.yacy.cora.federate; import java.io.IOException; +import java.net.MalformedURLException; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -101,8 +102,10 @@ public class SolrFederateSearchConnector extends AbstractFederateSearchConnector SolrDocumentList docList = solrConnector.getDocumentListByParams(msp); // convert to YaCy schema documentlist for (SolrDocument doc : docList) { - URIMetadataNode anew = toYaCySchema(doc); - docs.add(anew); + try { + URIMetadataNode anew = toYaCySchema(doc); + docs.add(anew); + } catch (MalformedURLException ex) { } } } catch (IOException | SolrException e) { } finally { diff --git a/source/net/yacy/kelondro/data/meta/URIMetadataNode.java b/source/net/yacy/kelondro/data/meta/URIMetadataNode.java index 511e571ee..928ae92d2 100644 --- a/source/net/yacy/kelondro/data/meta/URIMetadataNode.java +++ b/source/net/yacy/kelondro/data/meta/URIMetadataNode.java @@ -90,18 +90,13 @@ public class URIMetadataNode extends SolrDocument /* implements Comparable