private boolean discardDone ( INodeFileUnderConstruction pendingFile , String src ) throws IOException { Block [ ] blocks = pendingFile . getBlocks ( ) ; if ( blocks == null || blocks . length == 0 ) { return false ; } Block last = blocks [ blocks . length - 1 ] ; if ( last . getNumBytes ( ) == 0 ) { dir . removeBlock ( src , pendingFile , last ) ; finalizeINodeFileUnderConstruction ( src , pendingFile ) ; NameNode . stateChangeLog . warn ( "BLOCK*" + " internalReleaseLease: discarded last block " + last + " , lease removed for " + src ) ; return true ; } return false ; }
the last block completely .