do not allocate a StringBuilder object in case that there is not enough memory for that

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7846 6c8d7289-2bf4-0310-a012-ef5d649a1542
This commit is contained in:
orbiter 2011-07-16 23:17:19 +00:00
parent 6a6f27eaf3
commit b06faab9d3

View File

@ -1,4 +1,4 @@
// AbstractScraper.java
// AbstractScraper.java
// ---------------------------
// (C) by Michael Peter Christen; mc@yacy.net
// first published on http://www.anomic.de
@ -32,12 +32,14 @@ package net.yacy.document.parser.html;
import java.util.Properties;
import java.util.Set;
import net.yacy.kelondro.util.MemoryControl;
public abstract class AbstractScraper implements Scraper {
public static final char lb = '<';
public static final char rb = '>';
public static final char sl = '/';
private Set<String> tags0;
private Set<String> tags1;
@ -52,11 +54,11 @@ public abstract class AbstractScraper implements Scraper {
}
public boolean isTag0(final String tag) {
return (tags0 != null) && (tags0.contains(tag.toLowerCase()));
return (this.tags0 != null) && (this.tags0.contains(tag.toLowerCase()));
}
public boolean isTag1(final String tag) {
return (tags1 != null) && (tags1.contains(tag.toLowerCase()));
return (this.tags1 != null) && (this.tags1.contains(tag.toLowerCase()));
}
//the 'missing' method that shall be implemented:
@ -68,6 +70,7 @@ public abstract class AbstractScraper implements Scraper {
public abstract void scrapeTag1(String tagname, Properties tagopts, char[] text);
protected static String stripAllTags(final char[] s) {
if (!MemoryControl.request(s.length * 2, false)) return "";
final StringBuilder r = new StringBuilder(s.length);
int bc = 0;
for (final char c : s) {
@ -89,10 +92,10 @@ public abstract class AbstractScraper implements Scraper {
public void close() {
// free resources
tags0 = null;
tags1 = null;
this.tags0 = null;
this.tags1 = null;
}
}