code: @Override
  	public final Object retrieve(int handle) throws DataStoreException
      {
          if (SAFE_MODE) checkHandle(handle);
          
          // Compute total size
          int totalSize = computeSize(handle);
          
          // Retrieve all blocks
          byte[] data = new byte[totalSize];
          int offset = 0;
          int current = handle;
          while (current != -1)
          {
              int blockLen = allocatedSize[current];
              
              // Read block from map file
              readDataBlock(data,offset,blockLen,current);
              offset += blockLen;
              
              if ((flags[current] & FLAG_END_BLOCK) > 0)
                  break;
              current = nextBlock[current];
          }
          if (current == -1)
              throw new DataStoreException("Can't find end block for "+handle);
          
          return data;
      }
docs: /*
  (non-Javadoc)
  @see net.timewalker.ffmq4.utils.store.ChainedDataStore#retrieve(int)