/** * Method intended to be called from "clear()", after sub-class has done * its own cleanup. Not marked as synchronized as sub-class is expected * to do that if necessary. */ protected void _clear() { if (_head == null) { // closed; nothing to do return; } // first: reset various counters (since this can't fail) _totalPayloadLength = 0L; _clearPeeked(); // then free all segments except for head: note, may get an internal error: String error = null; while (_tail != _head) { error = _freeReadSegment(error); } // then re-init head/tail _tail.clear(); // and finally, indicate error, if any if (error != null) { // sanity check after everything else throw new IllegalStateException(error); } }
/** * Method intended to be called from "clear()", after sub-class has done * its own cleanup. Not marked as synchronized as sub-class is expected * to do that if necessary. */ protected void _clear() { if (_head == null) { // closed; nothing to do return; } // first: reset various counters (since this can't fail) _totalPayloadLength = 0L; _clearPeeked(); // then free all segments except for head: note, may get an internal error: String error = null; while (_tail != _head) { error = _freeReadSegment(error); } // then re-init head/tail _tail.clear(); // and finally, indicate error, if any if (error != null) { // sanity check after everything else throw new IllegalStateException(error); } }