one more patch again OOM during secondary remote search

see also: http://forum.yacy-websuche.de/viewtopic.php?f=6&t=3202

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7551 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 14 years ago
parent 77b1e921a9
commit 799c534935

@ -537,16 +537,17 @@ public final class yacyClient {
ByteBuffer ci;
int ac = 0;
for (Map.Entry<byte[], String> abstractEntry: result.indexabstract.entrySet()) {
wordhash = new String(abstractEntry.getKey());
whacc += wordhash;
try {
ci = new ByteBuffer(abstractEntry.getValue().getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {
ci = new ByteBuffer(abstractEntry.getValue());
wordhash = new String(abstractEntry.getKey());
} catch (OutOfMemoryError e) {
Log.logException(e);
return -1;
continue;
}
whacc += wordhash;
secondarySearchSuperviser.addAbstract(wordhash, ReferenceContainer.decompressIndex(ci, target.hash));
ac++;
}
if (ac > 0) {
secondarySearchSuperviser.commitAbstract();

@ -32,6 +32,8 @@ import java.util.Collection;
import java.util.List;
import java.util.Properties;
import net.yacy.cora.document.UTF8;
public final class ByteBuffer extends OutputStream {
public static final byte singlequote = (byte) 39;
@ -53,13 +55,19 @@ public final class ByteBuffer extends OutputStream {
this.buffer = new byte[initLength];
this.length = 0;
this.offset = 0;
}
}
public ByteBuffer(final byte[] bb) {
buffer = bb;
length = bb.length;
offset = 0;
}
public ByteBuffer(final String s) {
buffer = s.getBytes(UTF8.charset);
length = buffer.length;
offset = 0;
}
public ByteBuffer(final byte[] bb, final int initLength) {
this.buffer = new byte[initLength];

Loading…
Cancel
Save