Lines 150-157
Link Here
|
150 |
* Buffer size. |
150 |
* Buffer size. |
151 |
*/ |
151 |
*/ |
152 |
private int size = -1; |
152 |
private int size = -1; |
|
|
153 |
|
154 |
|
155 |
/** |
156 |
* readAheadLimit for mark and reset. |
157 |
*/ |
158 |
private int readAheadLimit = -1; |
159 |
|
153 |
|
160 |
|
154 |
|
|
|
155 |
// ----------------------------------------------------------- Constructors |
161 |
// ----------------------------------------------------------- Constructors |
156 |
|
162 |
|
157 |
|
163 |
|
Lines 363-368
Link Here
|
363 |
} |
369 |
} |
364 |
} |
370 |
} |
365 |
|
371 |
|
|
|
372 |
if (markPos >= 0){ |
373 |
if (cb.getOffset() - markPos > readAheadLimit){ |
374 |
markPos = -1; |
375 |
} |
376 |
} |
377 |
|
366 |
if (markPos == -1) { |
378 |
if (markPos == -1) { |
367 |
cb.setOffset(0); |
379 |
cb.setOffset(0); |
368 |
cb.setEnd(0); |
380 |
cb.setEnd(0); |
Lines 466-471
Link Here
|
466 |
if (closed) |
478 |
if (closed) |
467 |
throw new IOException(sm.getString("inputBuffer.streamClosed")); |
479 |
throw new IOException(sm.getString("inputBuffer.streamClosed")); |
468 |
|
480 |
|
|
|
481 |
if (readAheadLimit < 0){ |
482 |
throw new IllegalArgumentException(sm.getString("inputBuffer.readAheadLimitNegative")); |
483 |
} |
484 |
|
469 |
if (cb.getLength() <= 0) { |
485 |
if (cb.getLength() <= 0) { |
470 |
cb.setOffset(0); |
486 |
cb.setOffset(0); |
471 |
cb.setEnd(0); |
487 |
cb.setEnd(0); |
Lines 480-485
Link Here
|
480 |
} |
496 |
} |
481 |
cb.setLimit(cb.getStart() + readAheadLimit + size); |
497 |
cb.setLimit(cb.getStart() + readAheadLimit + size); |
482 |
markPos = cb.getStart(); |
498 |
markPos = cb.getStart(); |
|
|
499 |
this.readAheadLimit = readAheadLimit; |
483 |
} |
500 |
} |
484 |
|
501 |
|
485 |
|
502 |
|
Lines 491-499
Link Here
|
491 |
|
508 |
|
492 |
if (state == CHAR_STATE) { |
509 |
if (state == CHAR_STATE) { |
493 |
if (markPos < 0) { |
510 |
if (markPos < 0) { |
494 |
cb.recycle(); |
511 |
throw new IOException(sm.getString("inputBuffer.markNotEffective")); |
495 |
markPos = -1; |
|
|
496 |
throw new IOException(); |
497 |
} else { |
512 |
} else { |
498 |
cb.setOffset(markPos); |
513 |
cb.setOffset(markPos); |
499 |
} |
514 |
} |