You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2012/03/19 21:56:35 UTC
svn commit: r1302652 -
/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BaseNCodecInputStream.java
Author: ggregory
Date: Mon Mar 19 20:56:34 2012
New Revision: 1302652
URL: http://svn.apache.org/viewvc?rev=1302652&view=rev
Log:
[CODEC-130] Base64InputStream.skip skips underlying stream, not output. Can skip more than Integer.MAX_VALUE at a time.
Modified:
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BaseNCodecInputStream.java
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BaseNCodecInputStream.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BaseNCodecInputStream.java?rev=1302652&r1=1302651&r2=1302652&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BaseNCodecInputStream.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/binary/BaseNCodecInputStream.java Mon Mar 19 20:56:34 2012
@@ -163,21 +163,17 @@ public class BaseNCodecInputStream exten
// skip in chunks of 512 bytes
final byte[] b = new byte[512];
- final int max = (int) Math.min(n, Integer.MAX_VALUE);
- int total = 0;
+ long todo = n;
- while (total < max) {
- int len = max - total;
- if (len > b.length) {
- len = b.length;
- }
- len = read(b, 0, len);
+ while (todo > 0) {
+ int len = (int) Math.min(b.length, todo);
+ len = this.read(b, 0, len);
if (len == EOF) {
break;
}
- total += len;
+ todo -= len;
}
- return total;
+ return n - todo;
}
}