code: @DoesServiceRequest
      private synchronized void dispatchWrite(final int writeLength) throws IOException {
          if (writeLength == 0) {
              return;
          }
  
          Callable<Void> worker = null;
  
          if (this.outstandingRequests > this.options.getConcurrentRequestCount() * 2) {
              this.waitForTaskToComplete();
          }
  
          final ByteArrayInputStream bufferRef = new ByteArrayInputStream(this.outBuffer.toByteArray());
          final CloudFile fileRef = this.parentFileRef;
          long tempOffset = this.currentOffset;
          long tempLength = writeLength;
  
          final long opWriteLength = tempLength;
          final long opOffset = tempOffset;
          this.currentOffset += writeLength;
  
          worker = new Callable<Void>() {
              @Override
              public Void call() {
                  try {
                      fileRef.uploadRange(bufferRef, opOffset, opWriteLength, FileOutputStream.this.accessCondition,
                              FileOutputStream.this.options, FileOutputStream.this.opContext);
                  }
                  catch (final IOException e) {
                      synchronized (FileOutputStream.this.lastErrorLock) {
                          FileOutputStream.this.streamFaulted = true;
                          FileOutputStream.this.lastError = e;
                      }
                  }
                  catch (final StorageException e) {
                      synchronized (FileOutputStream.this.lastErrorLock) {
                          FileOutputStream.this.streamFaulted = true;
                          FileOutputStream.this.lastError = Utility.initIOException(e);
                      }
                  } catch (URISyntaxException e) {
                      synchronized (FileOutputStream.this.lastErrorLock) {
                          FileOutputStream.this.streamFaulted = true;
                          FileOutputStream.this.lastError = Utility.initIOException(e);
                      }
                  }
  
                  return null;
              }
          };
  
          // Do work and reset buffer.
          this.completionService.submit(worker);
          this.outstandingRequests++;
          this.currentBufferedBytes = 0;
          this.outBuffer = new ByteArrayOutputStream();
      }
docs: Dispatches a write operation for a given length.
  
  @param writeLength
  An <code>int</code> which represents the length of the data to write, this is the write threshold that
  triggered the write.
  
  @throws IOException
  If an I/O error occurs. In particular, an IOException may be thrown if the output stream has been
  closed.