private boolean isKnownVersion(long version){
  if (version > currentVersion || version < 0) {
    return false;
  }
  if (version == currentVersion || chunks.size() == 0) {
    return true;
  }
  Chunk c=getChunkForVersion(version);
  if (c == null) {
    return false;
  }
  MVMap<String,String> oldMeta=getMetaMap(version);
  if (oldMeta == null) {
    return false;
  }
  try {
    for (Iterator<String> it=oldMeta.keyIterator("chunk."); it.hasNext(); ) {
      String chunkKey=it.next();
      if (!chunkKey.startsWith("chunk.")) {
        break;
      }
      if (!meta.containsKey(chunkKey)) {
        String s=oldMeta.get(chunkKey);
        Chunk c2=Chunk.fromString(s);
        Chunk test=readChunkHeaderAndFooter(c2.block);
        if (test == null || test.id != c2.id) {
          return false;
        }
        chunks.put(c2.id,c2);
      }
    }
  }
 catch (  IllegalStateException e) {
    return false;
  }
  return true;
}

private boolean isKnownVersion ( long version ) { if ( version > currentVersion || version < 0 ) { return false ; } if ( version == currentVersion || chunks . size ( ) == 0 ) { return true ; } Chunk c = getChunkForVersion ( version ) ; if ( c == null ) { return false ; } MVMap < String , String > oldMeta = getMetaMap ( version ) ; if ( oldMeta == null ) { return false ; } try { for ( Iterator < String > it = oldMeta . keyIterator ( "chunk." ) ; it . hasNext ( ) ; ) { String chunkKey = it . next ( ) ; if ( ! chunkKey . startsWith ( "chunk." ) ) { break ; } if ( ! meta . containsKey ( chunkKey ) ) { String s = oldMeta . get ( chunkKey ) ; Chunk c2 = Chunk . fromString ( s ) ; Chunk test = readChunkHeaderAndFooter ( c2 . block ) ; if ( test == null || test . id != c2 . id ) { return false ; } chunks . put ( c2 . id , c2 ) ; } } } catch ( IllegalStateException e ) { return false ; } return true ; }
check whether all data can be read from this version . this requires that all chunks referenced by this version are still available ( not overwritten ) .
