private void switchIfNeeded(long newLength) throws IOException { if(isInitialBuffer && newLength>=tempFileThreshold) { TempFile tempFile = tempFileList.createTempFile(); if(logger.isLoggable(Level.FINE)) logger.log(Level.FINE, "Switching to temp file: {0}", tempFile); buffer.close(); TempFileWriter tempFileWriter = new TempFileWriter(tempFile); buffer.getResult().writeTo(tempFileWriter); buffer = tempFileWriter; isInitialBuffer = false; } }