private void uploadImage(long txid) throws IOException {
    final long start = AvatarNode.now();
    LOG.info("Standby: Checkpointing - Upload fsimage to remote namenode.");
    checkpointStatus("Image upload started");
    
    imageUploader = new ImageUploader(txid);
    imageUploader.start();
    
    // wait for the upload to complete   
    while (running
        && !imageUploader.done
        && AvatarNode.now() - start < MAX_CHECKPOINT_UPLOAD_TIMEOUT) {
      try {
        imageUploader.join(3000);
      } catch (InterruptedException ie) { 
        LOG.error("Reveived interruption when uploading image for txid: "
            + txid);
        Thread.currentThread().interrupt();
        throw (IOException) new InterruptedIOException().initCause(ie);
      } 
    }
    if (!running || !imageUploader.succeeded) {
      InjectionHandler.processEvent(InjectionEvent.STANDBY_UPLOAD_FAIL);
      throw new IOException(
          "Standby: Checkpointing - Image upload failed (time= "
              + (AvatarNode.now() - start) + " ms).", imageUploader.error);
    }
    imageUploader = null;
    LOG.info("Standby: Checkpointing - Upload fsimage to remote namenode DONE.");
    checkpointStatus("Image upload completed");
  }
private void uploadImage ( long txid ) throws IOException { final long start = AvatarNode . now ( ) ; LOG . info ( "Standby: Checkpointing - Upload fsimage to remote namenode." ) ; checkpointStatus ( "Image upload started" ) ; imageUploader = new ImageUploader ( txid ) ; imageUploader . start ( ) ; while ( running && ! imageUploader . done && AvatarNode . now ( ) - start < MAX_CHECKPOINT_UPLOAD_TIMEOUT ) { try { imageUploader . join ( 3000 ) ; } catch ( InterruptedException ie ) { LOG . error ( "Reveived interruption when uploading image for txid: " + txid ) ; Thread . currentThread ( ) . interrupt ( ) ; throw ( IOException ) new InterruptedIOException ( ) . initCause ( ie ) ; } } if ( ! running || ! imageUploader . succeeded ) { InjectionHandler . processEvent ( InjectionEvent . STANDBY_UPLOAD_FAIL ) ; throw new IOException ( "Standby: Checkpointing - Image upload failed (time= " + ( AvatarNode . now ( ) - start ) + " ms)." , imageUploader . error ) ; } imageUploader = null ; LOG . info ( "Standby: Checkpointing - Upload fsimage to remote namenode DONE." ) ; checkpointStatus ( "Image upload completed" ) ; }
Creates image upload thread.