misc NPE check

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6630 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
orbiter 2010-01-29 15:59:24 +00:00
parent a512aef6ad
commit 7fdf59a77f
10 changed files with 23 additions and 9 deletions

View File

@ -323,7 +323,7 @@ public class IndexControlURLs_p {
} }
final URIMetadataRow.Components metadata = entry.metadata(); final URIMetadataRow.Components metadata = entry.metadata();
final URIMetadataRow le = ((entry.referrerHash() == null) || (entry.referrerHash().length() != Word.commonHashLength)) ? null : segment.urlMetadata().load(entry.referrerHash(), null, 0); final URIMetadataRow le = ((entry.referrerHash() == null) || (entry.referrerHash().length() != Word.commonHashLength)) ? null : segment.urlMetadata().load(entry.referrerHash(), null, 0);
if (metadata.url() == null) { if (metadata == null || metadata.url() == null) {
prop.put("genUrlProfile", "1"); prop.put("genUrlProfile", "1");
prop.put("genUrlProfile_urlhash", urlhash); prop.put("genUrlProfile_urlhash", urlhash);
return prop; return prop;

View File

@ -109,7 +109,7 @@ public final class transferURL {
// check if entry is well-formed // check if entry is well-formed
final URIMetadataRow.Components metadata = lEntry.metadata(); final URIMetadataRow.Components metadata = lEntry.metadata();
if (metadata.url() == null) { if (metadata == null || metadata.url() == null) {
yacyCore.log.logWarning("transferURL: received invalid URL from peer " + otherPeerName + "\n\tURL Property: " + urls); yacyCore.log.logWarning("transferURL: received invalid URL from peer " + otherPeerName + "\n\tURL Property: " + urls);
blocked++; blocked++;
continue; continue;

View File

@ -40,6 +40,7 @@ import net.yacy.document.TextParser;
import net.yacy.document.ParserException; import net.yacy.document.ParserException;
import net.yacy.kelondro.data.meta.DigestURI; import net.yacy.kelondro.data.meta.DigestURI;
import net.yacy.kelondro.data.meta.URIMetadataRow; import net.yacy.kelondro.data.meta.URIMetadataRow;
import net.yacy.kelondro.data.meta.URIMetadataRow.Components;
import net.yacy.kelondro.logging.Log; import net.yacy.kelondro.logging.Log;
@ -179,8 +180,11 @@ public class DocumentIndex extends Segment {
public ArrayList<File> find(String querystring, int pos, int count) { public ArrayList<File> find(String querystring, int pos, int count) {
ArrayList<URIMetadataRow> result = findMetadata(querystring, this); ArrayList<URIMetadataRow> result = findMetadata(querystring, this);
ArrayList<File> files = new ArrayList<File>(); ArrayList<File> files = new ArrayList<File>();
Components metadata;
for (URIMetadataRow row : result) { for (URIMetadataRow row : result) {
files.add(row.metadata().url().getLocalFile()); metadata = row.metadata();
if (metadata == null) continue;
files.add(metadata.url().getLocalFile());
count--; count--;
if (count == 0) break; if (count == 0) break;
} }

View File

@ -44,6 +44,7 @@ import java.util.concurrent.TimeUnit;
import net.yacy.document.Condenser; import net.yacy.document.Condenser;
import net.yacy.kelondro.data.meta.DigestURI; import net.yacy.kelondro.data.meta.DigestURI;
import net.yacy.kelondro.data.meta.URIMetadataRow; import net.yacy.kelondro.data.meta.URIMetadataRow;
import net.yacy.kelondro.data.meta.URIMetadataRow.Components;
import net.yacy.kelondro.data.word.Word; import net.yacy.kelondro.data.word.Word;
import net.yacy.kelondro.data.word.WordReference; import net.yacy.kelondro.data.word.WordReference;
import net.yacy.kelondro.data.word.WordReferenceVars; import net.yacy.kelondro.data.word.WordReferenceVars;
@ -393,7 +394,7 @@ public final class RankingProcess extends Thread {
final URIMetadataRow.Components metadata = page.metadata(); final URIMetadataRow.Components metadata = page.metadata();
// check url constraints // check url constraints
if (metadata.url() == null) { if (metadata == null || metadata.url() == null) {
continue; // rare case where the url is corrupted continue; // rare case where the url is corrupted
} }
@ -583,10 +584,13 @@ public final class RankingProcess extends Thread {
URIMetadataRow mr; URIMetadataRow mr;
DigestURI url; DigestURI url;
String hostname; String hostname;
Components metadata;
loop: for (int i = 0; i < rc; i++) { loop: for (int i = 0; i < rc; i++) {
mr = this.query.getSegment().urlMetadata().load(hsa[i].hashsample, null, 0); mr = this.query.getSegment().urlMetadata().load(hsa[i].hashsample, null, 0);
if (mr == null) continue; if (mr == null) continue;
url = mr.metadata().url(); metadata = mr.metadata();
if (metadata == null) continue;
url = metadata.url();
if (url == null) continue; if (url == null) continue;
hostname = url.getHost(); hostname = url.getHost();
if (hostname == null) continue; if (hostname == null) continue;

View File

@ -201,6 +201,7 @@ public class ResultFetcher {
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
final URIMetadataRow.Components metadata = page.metadata(); final URIMetadataRow.Components metadata = page.metadata();
if (metadata == null) return null;
final long dbRetrievalTime = System.currentTimeMillis() - startTime; final long dbRetrievalTime = System.currentTimeMillis() - startTime;
if (snippetMode == 0) { if (snippetMode == 0) {

View File

@ -371,7 +371,7 @@ public class Segment {
final URIMetadataRow entry = urlMetadata().load(urlhash, null, 0); final URIMetadataRow entry = urlMetadata().load(urlhash, null, 0);
if (entry == null) return 0; if (entry == null) return 0;
final URIMetadataRow.Components metadata = entry.metadata(); final URIMetadataRow.Components metadata = entry.metadata();
if (metadata.url() == null) return 0; if (metadata == null || metadata.url() == null) return 0;
InputStream resourceContent = null; InputStream resourceContent = null;
try { try {

View File

@ -73,6 +73,7 @@ import net.yacy.document.parser.xml.RSSFeed;
import net.yacy.kelondro.blob.BEncodedHeapArray; import net.yacy.kelondro.blob.BEncodedHeapArray;
import net.yacy.kelondro.data.meta.DigestURI; import net.yacy.kelondro.data.meta.DigestURI;
import net.yacy.kelondro.data.meta.URIMetadataRow; import net.yacy.kelondro.data.meta.URIMetadataRow;
import net.yacy.kelondro.data.meta.URIMetadataRow.Components;
import net.yacy.kelondro.data.word.Word; import net.yacy.kelondro.data.word.Word;
import net.yacy.kelondro.index.RowSpaceExceededException; import net.yacy.kelondro.index.RowSpaceExceededException;
import net.yacy.kelondro.logging.Log; import net.yacy.kelondro.logging.Log;
@ -997,8 +998,10 @@ public final class Switchboard extends serverSwitch {
final DigestURI ne = crawlQueues.getURL(urlhash); final DigestURI ne = crawlQueues.getURL(urlhash);
if (ne != null) return ne; if (ne != null) return ne;
final URIMetadataRow le = indexSegments.urlMetadata(process).load(urlhash, null, 0); final URIMetadataRow le = indexSegments.urlMetadata(process).load(urlhash, null, 0);
if (le != null) return le.metadata().url(); if (le == null) return null;
return null; Components metadata = le.metadata();
if (metadata == null) return null;
return metadata.url();
} }
public RankingProfile getRanking() { public RankingProfile getRanking() {

View File

@ -556,6 +556,7 @@ public final class yacyClient {
assert (urlEntry.hash().length() == 12) : "urlEntry.hash() = " + urlEntry.hash(); assert (urlEntry.hash().length() == 12) : "urlEntry.hash() = " + urlEntry.hash();
if (urlEntry.hash().length() != 12) continue; // bad url hash if (urlEntry.hash().length() != 12) continue; // bad url hash
final URIMetadataRow.Components metadata = urlEntry.metadata(); final URIMetadataRow.Components metadata = urlEntry.metadata();
if (metadata == null) continue;
if (blacklist.isListed(Blacklist.BLACKLIST_SEARCH, metadata.url())) { if (blacklist.isListed(Blacklist.BLACKLIST_SEARCH, metadata.url())) {
yacyCore.log.logInfo("remote search (client): filtered blacklisted url " + metadata.url() + " from peer " + target.getName()); yacyCore.log.logInfo("remote search (client): filtered blacklisted url " + metadata.url() + " from peer " + target.getName());
continue; // block with backlist continue; // block with backlist

View File

@ -218,7 +218,7 @@ public class MapHeap {
} }
private String normalizeKey(String key) { private String normalizeKey(String key) {
if (blob == null) return key; if (blob == null || key == null) return key;
if (key.length() > blob.keylength()) key = key.substring(0, blob.keylength()); if (key.length() > blob.keylength()) key = key.substring(0, blob.keylength());
while (key.length() < blob.keylength()) key += fillchar; while (key.length() < blob.keylength()) key += fillchar;
return key; return key;

View File

@ -307,6 +307,7 @@ public class URIMetadataRow implements URIMetadata {
// generate a parseable string; this is a simple property-list // generate a parseable string; this is a simple property-list
final Components metadata = this.metadata(); final Components metadata = this.metadata();
final StringBuilder s = new StringBuilder(300); final StringBuilder s = new StringBuilder(300);
if (metadata == null) return null;
//System.out.println("author=" + comp.author()); //System.out.println("author=" + comp.author());
try { try {
s.append("hash=").append(hash()); s.append("hash=").append(hash());