diff --git a/source/de/anomic/htmlFilter/htmlFilterContentTransformer.java b/source/de/anomic/htmlFilter/htmlFilterContentTransformer.java
index 62481b54d..288c1b460 100644
--- a/source/de/anomic/htmlFilter/htmlFilterContentTransformer.java
+++ b/source/de/anomic/htmlFilter/htmlFilterContentTransformer.java
@@ -144,7 +144,7 @@ public class htmlFilterContentTransformer extends htmlFilterAbstractTransformer
// this is a text fragment, generate gettext quotation
int ws = sbbs[i].whitespaceStart(true);
int we = sbbs[i].whitespaceEnd(true);
- result.add(new String(sbbs[i].getBytes(ws, we)));
+ result.add(new String(sbbs[i].getBytes(ws, we - ws)));
}
}
return result;
diff --git a/source/de/anomic/http/httpChunkedOutputStream.java b/source/de/anomic/http/httpChunkedOutputStream.java
index dd5591b34..f5f7ab1dc 100644
--- a/source/de/anomic/http/httpChunkedOutputStream.java
+++ b/source/de/anomic/http/httpChunkedOutputStream.java
@@ -102,7 +102,7 @@ public final class httpChunkedOutputStream extends FilterOutputStream {
this.out.write(Integer.toHexString(len).getBytes());
this.out.write(serverCore.crlf);
- this.out.write(b.getBytes(off, off + len));
+ this.out.write(b.getBytes(off, len));
this.out.write(serverCore.crlf);
this.out.flush();
}
diff --git a/source/de/anomic/http/httpSSI.java b/source/de/anomic/http/httpSSI.java
index 6ad4778ec..265ae3e39 100644
--- a/source/de/anomic/http/httpSSI.java
+++ b/source/de/anomic/http/httpSSI.java
@@ -48,7 +48,7 @@ public class httpSSI {
parseSSI(referenceFile, in, start, q + 3 - start, out);
writeSSI(referenceFile, in, start + q + 3, out);
} else if (p > 0) {
- int q = in.indexOf("-->".getBytes(), start + 10);
+ int q = in.indexOf("-->".getBytes(), p + 10);
out.write(in, start, p - start);
parseSSI(referenceFile, in, start + p, q + 3 - start - p, out);
writeSSI(referenceFile, in, start + q + 3, out);
diff --git a/source/de/anomic/http/httpTemplate.java b/source/de/anomic/http/httpTemplate.java
index 14626b516..fba1314df 100644
--- a/source/de/anomic/http/httpTemplate.java
+++ b/source/de/anomic/http/httpTemplate.java
@@ -179,7 +179,7 @@ public final class httpTemplate {
if (q >= 0) {
// found a pattern
l.addAll(splitQuotation(new serverByteBuffer(text.getBytes(0, p)), qoff));
- l.add(new serverByteBuffer(text.getBytes(p, q + right.length)));
+ l.add(new serverByteBuffer(text.getBytes(p, q + right.length - p)));
text = new serverByteBuffer(text.getBytes(q + right.length));
} else {
// found only pattern start, no closing parantesis (a syntax error that is silently accepted here)
diff --git a/source/de/anomic/kelondro/kelondroBufferedRA.java b/source/de/anomic/kelondro/kelondroBufferedRA.java
index 94feec9d3..27f44590d 100644
--- a/source/de/anomic/kelondro/kelondroBufferedRA.java
+++ b/source/de/anomic/kelondro/kelondroBufferedRA.java
@@ -80,7 +80,7 @@ public class kelondroBufferedRA extends kelondroAbstractRA implements kelondroRA
}
public int read(byte[] b, int off, int len) throws IOException {
- byte[] g = sbb.getBytes((int) pos, (int) pos + len);
+ byte[] g = sbb.getBytes((int) pos, len);
pos += g.length;
System.arraycopy(g, 0, b, off, g.length);
return g.length;
diff --git a/source/de/anomic/server/serverByteBuffer.java b/source/de/anomic/server/serverByteBuffer.java
index 04ecb4066..988c2a410 100644
--- a/source/de/anomic/server/serverByteBuffer.java
+++ b/source/de/anomic/server/serverByteBuffer.java
@@ -295,13 +295,13 @@ public final class serverByteBuffer extends OutputStream {
public byte[] getBytes(int start) {
return getBytes(start, length);
}
-
- public byte[] getBytes(int start, int end) {
+
+ public byte[] getBytes(int start, int len) {
// start is inclusive, end is exclusive
- if (end > length) throw new IndexOutOfBoundsException("getBytes: end > length");
+ if (len > length) throw new IndexOutOfBoundsException("getBytes: len > length");
if (start > length) throw new IndexOutOfBoundsException("getBytes: start > length");
- byte[] tmp = new byte[end - start];
- System.arraycopy(buffer, offset + start, tmp, 0, end - start);
+ byte[] tmp = new byte[len];
+ System.arraycopy(buffer, offset + start, tmp, 0, len);
return tmp;
}
@@ -313,13 +313,12 @@ public final class serverByteBuffer extends OutputStream {
return this;
}
- public serverByteBuffer trim(int start, int end) {
+ public serverByteBuffer trim(int start, int len) {
// the end value is outside (+1) of the wanted target array
if (start > length) throw new IndexOutOfBoundsException("trim: start > length");
- if (end > length) throw new IndexOutOfBoundsException("trim: end > length");
- if (start > end) throw new IndexOutOfBoundsException("trim: start > end");
+ if (start + len > length) throw new IndexOutOfBoundsException("trim: start + len > length");
offset = offset + start;
- length = end - start;
+ length = len;
return this;
}
@@ -337,7 +336,7 @@ public final class serverByteBuffer extends OutputStream {
r--;
}
if (l > r) r = l;
- return trim(l, r);
+ return trim(l, r - l);
}
public int isUTF8char(int start) {